﻿// ChatOnline - ver. 2.0
// Work with cookies
// Copyright(c) 2008 WaveAccess, http://wave-access.com

var sLiveHelpCookie = 'LiveHelpCookie';
var iMaxClicks = 2;
var sGuestJid = 'guest_2a6e96bc01f2127ab53a00';
var sJabberServer = '70.38.112.42';

var sGuestPassword = 'password';
var sContactFormURL = '';
var sRootURL = 'http://hansveldman.com/GuideChat/';
var sWindowParams = 'width=400,height=440,toolbar=0,left=200,top=200';

function clickCounter() {
	if (document.location.href.indexOf("gc.html") > 0)
		return;
	 renderButton(presence, jid);
	 if (iMaxClicks <= 0)
		return; 
	 var iCookie = readCookie(sLiveHelpCookie);
	 if (!iCookie) {
		iCookie = 0;
		setCookie(0);
	 }
	 if (iCookie && iCookie != '-1') {
		iCookie++;
		setCookie(iCookie);
	 }

	 if ((iCookie > iMaxClicks - 1) && presence == 'online') 	 
		openDIV();

}

function supportOnline() {
 openDIV("");
}
function renderButton(status, jid){
    if (jid != sGuestJid) 
        status='offline';
    var obj = document.getElementById("chatOnlineButtonDiv");
    var bigChatBtn = document.getElementById("orangeBadge");
    var chatBtn = document.createElement('IMG');
    try{    
        chatBtn.id = 'chatBtn';
        chatBtn.src = sRootURL +'images/' + status + '.png';
        if (status == 'online'){
            chatBtn.onclick = Chat;
            chatBtn.style.cssText = "cursor:pointer;";
            if(bigChatBtn!=null)
            {
				bigChatBtn.href = "#";
				bigChatBtn.onclick = Chat;
				bigChatBtn.style.cssText = "background:url(../i/orange_badge.png) no-repeat;";
			}
        }
        else{
				if(bigChatBtn!=null) bigChatBtn.style.cssText = "background:url(../i/orange_badge_offline.png) no-repeat;";
                if (typeof(sContactFormURL) != 'undefined'){
                    if (sContactFormURL.length > 0){                                                
                        chatBtn.style.cssText = "cursor:pointer;";
                        chatBtn.onclick = openContactForm;
                    }
                    else
                        chatBtn.style.cssText = "cursor:default;";                        
                }
                else
                    chatBtn.style.cssText = "cursor:default;";                    
        }       
    obj.appendChild(chatBtn);
    }
    catch(err){}
}
function openContactForm()
{
    window.open(sContactFormURL,'new', sWindowParams);
}

function setSupportJID(){ 
    openDIV();
}

//Enter Chat window 
/////////////////////////////////////////////////////////

function GetScrollPos()
{
    var pos = { x : 0, y : 0 };
    if( typeof( window.pageYOffset ) == 'number') {
        //Netscape 
        pos.x = window.pageXOffset;
        pos.y = window.pageYOffset;
    } else if( document.body && (document.body.scrollLeft || document.body.scrollTop) ) {
        //DOM browsers
        pos.x = document.body.scrollLeft;
        pos.y = document.body.scrollTop;
    } else if( document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop) ) {
        //IE
        pos.x = document.documentElement.scrollLeft;
        pos.y = document.documentElement.scrollTop;
    }    
    
    return pos;
}

function GetInnerSize()
{
    var size = { width : 0, height : 0 };
        
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        size.width = window.innerWidth;
        size.height = window.innerHeight;
    } else if( document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight) ) {
        //IE
        size.width = document.documentElement.clientWidth;
        size.height = document.documentElement.clientHeight;
    } else if( document.body && (document.body.clientWidth || document.body.clientHeight) ) {
        //IE old
        size.width = document.body.clientWidth;
        size.height = document.body.clientHeight;        
    }
    
    return size;
}

function addEvent(element, eventType, func)  
{  
    eventType = eventType.replace(/^on/i,"");  
    if(element.addEventListener)  
        element.addEventListener(eventType, func, false);  
    else if (element.attachEvent)  
        element.attachEvent('on' + eventType, func);  
    else  
        element['on' + eventType] = func;  
}  
  
  
function removeEvent(element, eventType, func)  
{  
    eventType = eventType.replace(/^on/i,"");  
    if(element.removeEventListener)  
        element.removeEventListener(eventType, func, false);  
    else if (element.detachEvent)  
        element.detachEvent('on' + eventType, func);  
    else  
        element['on' + eventType] = null;  
}  
  

function resizeDiv()
{
    var chatDIV = document.getElementById('chatDIV');
    if(chatDIV)
    {
        var scrollPos = GetScrollPos();
        var innerSize = GetInnerSize();

        chatDIV.style.top = scrollPos.y + (innerSize.height - chatDIV.offsetHeight) / 2 + "px";
 	    chatDIV.style.left = scrollPos.x + (innerSize.width - chatDIV.offsetWidth) / 2 + "px";
 	}
}

function test1()
{
    alert("test1");
}

function test2()
{
    alert("test2");
}

/////////////////////////////////////////////////////////////
//End Enter Chat window 

function openDIV() {
 try {
	if (readCookie(sLiveHelpCookie) != '-1') {
 	var chatDIV = document.createElement('DIV');
 	chatDIV.id = 'chatDIV';
 	chatDIV.style.cssText = 'border:1px solid #808080; background:#ffffff; padding:5px 7px 20px 20px; position:absolute; z-index:98854;top:0px;left:0px;width:300px;text-align:center';
 	chatDIV.innerHTML = '<img src="'+ sRootURL +'images/wa_close.gif" onClick="CloseChatDiv()" title="Close" style="cursor:pointer;float:right;margin:0 0 10px 0;clear:both"><div style="FONT:12px Arial, Helvetica, Tahoma, Verdana, sans-serif;text-align:left;padding-right:15px;margin-top:20px;">' + divMessage + '</div><div style="float:none;margin:20px auto 0 auto;width:71px;height:19px"><a onClick="Chat()" style="color:#ffffff;FONT:12px/18px Arial, Helvetica, Tahoma, Verdana, sans-serif;background:url('+ sRootURL +'images/btn_enter_chat.png);width:78px;height:19px;display:block;cursor:pointer">&nbsp;</a></div>';
 	document.body.appendChild(chatDIV);

    resizeDiv();

    addEvent(window, 'scroll', resizeDiv);
    addEvent(window, 'resize', resizeDiv);
           
 	setCookie(-1);
 }
}   
 catch (err) { }
}
function CloseChatDiv() {
 try {
	setCookie(-1);
	if (document.getElementById('chatDIV') != null)
	document.getElementById('chatDIV').style.display = "none";
	
	removeEvent(window, 'scroll', resizeDiv);
	removeEvent(window, 'resize', resizeDiv);
	
 }
 catch (err) { }
}

function Chat() {
 try {
	 setCookie(-1);
	 CloseChatDiv();
	 window.open(sRootURL + 'gc.html', 'new', 'width=462,height=450,toolbar=0, left=300,top=400');
 }
 catch (err) { }
}
function readCookie(name) {
 try {
	var nameEQ = 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);
	}
}
 catch (err) { }
 return null;
}

function setCookie(number) {
 try {
 document.cookie = sLiveHelpCookie + '=' + number + ';path=/';
 }
 catch (err) { }
}

//This code checks if DOM is loaded (IE and FF only, all the rest work on window load).
///////////////////////////////////////////////////////////////////////
startStack = function() { }; // A stack of functions to run onload/domready
registerOnLoad = function(func) {
	var orgOnLoad = startStack;
	startStack = function() {
	orgOnLoad(); func();
	return;
	}
}
var ranOnload = false; // Flag to determine if we've ran the starting stack already.
if (document.addEventListener) { // Mozilla actually has a DOM READY event.
	document.addEventListener("DOMContentLoaded", function() { if (!ranOnload) { ranOnload = true; startStack(); } }, false);
}
else if (document.all && !window.opera) { // This is the IE style which exploits a property of the (standards defined) defer attribute
	document.write("<scr" + "ipt id='DOMReady' defer=true " + "src=//:><\/scr" + "ipt>");
	document.getElementById("DOMReady").onreadystatechange = function() {
if (this.readyState == "complete" && (!ranOnload)) 
	{ ranOnload = true; startStack(); }
}
}
var orgOnLoad = window.onload;
window.onload = function() {
if (typeof (orgOnLoad) == 'function') { orgOnLoad(); }
if (!ranOnload) { ranOnload = true; startStack(); }
}
///////////////////////////////////////////////////////////////////////

//setCookie(-1);
//clickCounter();
registerOnLoad(clickCounter);
