ck_tim = new EchoCookie('echocptime'+SERVICE_ID)
ck_dur = new EchoCookie('echocpdur'+SERVICE_ID)
ck_off = new EchoCookie('echocp'+SERVICE_ID)

var sid = SERVICE_ID
var cpon = CALL_PROMPT
var cpd = CALL_PROMPT_TIME * 1000
if (window.BASE) { var bs = "http://static.echocall.co.uk/"; }
else { var bs = "http://static.echocall.co.uk/" }
var tpl = TEMPLATE;
var sel
var host = window.location.host
var echoc2c
window.onload = echoInit
document.write("<link href='"+bs+"t"+tpl+"/css/click2call.css' rel='stylesheet' type='text/css' />")

function echoInit() {
  activateButton()
  echoc2c = new EchoClick2Call()
  if (cpon){ echoc2c.cp = new CallPrompt()}
  }

function activateButton() {
  var btns = getElementsByClassName('echobutton')
  if (BUTTON.indexOf('http') == 0 ) { var btnsrc = BUTTON } else { var btnsrc = bs+"im/"+BUTTON }
  for (i=0,j=btns.length;i<j;i++) {
    btns[i].src = btnsrc
    }
  }
  
function EchoClick2Call() {
  var clickpos = 0;
  this.shroud = document.createElement("DIV")
  this.shroud.id = "callmeouter"
  this.shroud.setAttribute("style","position: absolute; width:100%; left:0; top:0; height:0; background-color:#000000; display:none; z-index:150;  filter: alpha(opacity=60); opacity: .60; -moz-opacity: .60; -khtml-opacity: .60;")
  document.body.appendChild(this.shroud)
  this.echobox = document.createElement("DIV")
  this.echobox.id = "echocall"
  document.body.appendChild(this.echobox)
  this.cache
  sel = document.getElementsByTagName('select')

  this.open = function (loc,opsarr) {
    scrollTo(0,0)
    if (window.opsarr || !this.cache) {
      domstr =""
      domstr +="<div id=\"callme\">"
      if (tpl!="4") {
        if (!window.opsarr || opsarr.indexOf('NO_LINK') =="-1") { domstr += "<div id=\"callmelink\"><a href=\"http://www.echocall.co.uk\" target=\"_blank\"><img src=\""+bs+"t"+tpl+"/im/s.gif\" id=\"callmelinkimg\" /></a></div>" }
  	  }
      if (!window.opsarr || opsarr.indexOf('NO_CLOSE') =="-1") { domstr += "<div id=\"callmeclose\"><img src=\""+bs+"t"+tpl+"/im/s.gif\" id=\"callmecloseimg\" onClick=\"echoc2c.close();return false;\"/></div>" }
      domstr += "<iframe ALLOWTRANSPARENCY=true id=\"callframe\" frameborder='0' src=\""+bs+"t"+tpl+"/callme.html?sid="+sid+"&loc="+loc+"\"></iframe></div>"
  	  this.echobox.innerHTML = domstr
  	  this.cache = bs+"t"+tpl+"/callme.html?sid="+sid+"&loc="+loc
	  }
    else {
			document.getElementById('callframe').src = this.cache
    }
    this.shroud.style.height = getPageHeight()+"px"
    this.shroud.style.width = "100%"
    this.shroud.style.display = "block"
    document.getElementById('callme').style.display = 'block'
    for (i=0,j=sel.length;i<j;i++) {
   	  sel[i].style.visibility = 'hidden'
    }
  }

  this.close = function () {
    window.onresize = ""
    this.shroud.style.height = 0
    this.shroud.style.display = "none"
    document.getElementById('callme').style.display = 'none'
    for (i=0;i<sel.length;i++) {
    	sel[i].style.visibility = 'visible'
    }
    if(cpon && this.cp) { this.cp.stop(); }
  }

  this.cp

  return this

}

function CallPrompt(){
   
  
  if (!ck_off.read() && cpon){
		curd = new Date()
		var curt = curd.getTime()
		var time=0
		var dur=0
		time=ck_tim.read()
		dur=ck_dur.read()
		ck_tim.set(curt,.04)
		if (time && dur){
			var difft = curt - time
			dur = parseInt(dur)+parseInt(difft)
			var wait = cpd-dur
			if (dur>cpd){ echoc2c.open() }
			else {
				ck_dur.set(dur,.04)
				cpto = setTimeout("echoc2c.open()",(wait))
           }
	   }
       else {
	  	   ck_dur.set(0,.04)
           if (window.cpon) {cpto = setTimeout("echoc2c.open()",(cpd))}
      }
    }


  this.stop = function() {
	  ck_off.set("1",1)
	  ck_tim.erase()
	  ck_dur.erase()
  }

  return this
}

function EchoCookie(nm) {
	this.name=nm
  this.value
  this.days

	this.set = function(val,expire) {
	  this.value=val
	  this.days=expire
	  if (this.days) {
		  var date = new Date()
		  date.setTime(date.getTime()+(this.days*24*60*60*1000))
		  var expires = "; expires="+date.toGMTString()
	  }
	  else var expires = ""
	  document.cookie = this.name+"="+this.value+expires+"; path=/"
  }

	this.read = function() {
	  var nameEQ = this.name + "="
	  var ca = document.cookie.split(';')
	  for(var i=0;i < ca.length;i++) {
	  	var c = ca[i]
	  	while (c.charAt(0)==' ') c = c.substring(1,c.length)
	  	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length)
	  }
	  return null
  }

  this.erase = function() {
  	this.set("",-1)
  }

  return this
}

function getPageHeight(){
	var yScroll
	if (window.innerHeight && window.scrollMaxY) {
		yScroll = window.innerHeight + window.scrollMaxY
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		yScroll = document.body.scrollHeight
	} else {
		yScroll = document.body.offsetHeight
	}
	var windowHeight
	if (self.innerHeight) {
		windowHeight = self.innerHeight
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowHeight = document.documentElement.clientHeight
	} else if (document.body) {
		windowHeight = document.body.clientHeight
	}
	if(yScroll < windowHeight){
      if ( screen.height < windowHeight) {
		pageHeight = windowHeight
        }
      else {
		pageHeight = screen.height 
        }
	} else {
      if ( screen.height < yScroll) {
		pageHeight = yScroll
        }
      else {
		pageHeight = screen.height 
        }
	}
	return pageHeight
}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}

Array.prototype.indexOf = function(v){
       for(var i = this.length; i-- && this[i] != v;);
       return i;
};

