function bringUp() {
		window.open("http://www.top4office.com/feedback/", "window", "height = 370px, width = 505px, resizable = 0, status = 0");
}


function filteraction (v) { 
	
	if (v == 'hide') {
		fade('filterpull');
		document.getElementById('filterpic').innerHTML = "<span id=\"filterpic\"><img onclick=\"filteraction('show')\" style=\"position: absolute; right: 200px; top: 10px; cursor: pointer;\" src=\"img1/showfil.gif\" alt=\"\"/></span>";
	}
	
	else if (v == 'show') {
	appear('filterpull');
	document.getElementById('filterpic').innerHTML = "<span id=\"filterpic\"><img onclick=\"filteraction('hide')\" style=\"position: absolute; right: 200px; top: 10px; cursor: pointer;\" src=\"img1/hidefil.gif\" alt=\"\"/></span>";
	
	}
	
}


function mainnav(value) {
if (value == 'about') {
document.getElementById('abouttop4').className = "currentnav";
document.getElementById('hotpicks').className = "";
document.getElementById('hotpick').style.display = "none";
document.getElementById('about').style.display = "block";
document.getElementById('whole').style.display = "none";
document.getElementById('hotpicks').className = "";

}

else if (value == 'hot')  {
document.getElementById('hotpicks').className = "currentnav";
document.getElementById('abouttop4').className = "";
document.getElementById('hotpick').style.display = "block";
document.getElementById('wiz1').className = "";
document.getElementById('about').style.display = "none";
document.getElementById('whole').style.display = "none";
}

else if (value == 'special')  {
document.getElementById('wiz1').className = "currentnav";
document.getElementById('abouttop4').className = "";
document.getElementById('whole').style.display = "block";
document.getElementById('hotpicks').className = "";
document.getElementById('about').style.display = "none";
document.getElementById('hotpick').style.display = "none";
}
}



//menu drop

function drop(value) {


if (value ==1 ) {
document.getElementById('photocopierdrop1').style.display = "block";
document.getElementById("photo1").setAttribute("onclick", "up(1); return true");
}

else if(value == 2) {
document.getElementById('printer').style.display = "block";
document.getElementById("print1").setAttribute("onclick", "up(2); return true");	
}
}

function up(value) {
if (value == 1) {
document.getElementById('photocopierdrop1').style.display = "none";
document.getElementById("photo1").setAttribute("onclick", "drop(1); return false");
}

else if (value == 2) {
document.getElementById('printer').style.display = "none";
document.getElementById("print1").setAttribute("onclick", "drop(2); return false");	
}
}


//product pull down

function showaccessories () {
	document.getElementById('accesspull').style.display = "block";
	document.getElementById('accesspull1').innerHTML = "<img class=\"acessdrop\" onclick=\"hideaccessories()\" src=\"img1/collapse1.gif\"/>";	
	document.getElementById('accesspull2').style.display = "none";
}

function hideaccessories () {
	document.getElementById('accesspull').style.display = "none";
	document.getElementById('accesspull1').innerHTML = "<img class=\"acessdrop\" onclick=\"showaccessories()\" src=\"img1/collapse.gif\"/>";
	document.getElementById('accesspull2').style.display = "block";
}

//change image on the product page

function changeimg(v) {
	document.getElementById('changeimgi').innerHTML = "<img class=\"main\" alt=\"\" src=\"" + v + "\" />" ;	
}



//product pages tabs

function changetabs (v) {

if (v == 'reviews') {
document.getElementById('reviews').className = "currentnav";	
document.getElementById('downloads').className = "none";
document.getElementById('details').className = "none";
document.getElementById('review').style.display= "block";
document.getElementById('download').style.display= "none";
document.getElementById('proddetails').style.display= "none";
}

else if (v == 'downloads') {
document.getElementById('reviews').className = "none";	
document.getElementById('downloads').className = "currentnav";
document.getElementById('details').className = "none";	
document.getElementById('review').style.display= "none";
document.getElementById('download').style.display= "block";
document.getElementById('proddetails').style.display= "none";
}

else {
document.getElementById('reviews').className = "none";	
document.getElementById('downloads').className = "none";
document.getElementById('details').className = "currentnav";
document.getElementById('review').style.display= "none";
document.getElementById('download').style.display= "none";
document.getElementById('proddetails').style.display= "block";
}

}

function setOpacity(domId, val) {
    obj = document.getElementById(domId);
    obj.style.MozOpacity = val;
    obj.style.opacity = val/10;
    obj.style.filter = 'alpha(opacity=' + val*10 + ')';
};

function fade(domId){

obj = document.getElementById(domId); 

 if(obj.style.display == "none") return false; 

 var alpha = 10; 
 function f(){ 

  alpha--; 
  setOpacity(domId, alpha); 

  if(alpha > -1){ 
   setTimeout(f, 100); 

  }else{ 
   obj.style.display = 'none'; 

  }
}
setTimeout(f, 100); 
};


function appear(domId){
obj = document.getElementById(domId); 

 if(obj.style.display != "none") return false; 

 obj.style.display = ''; 
 var alpha = 0; 

 function a(){ 
  alpha++; 

  setOpacity(domId, alpha);
  if(alpha < 11)setTimeout(a, 100);

}
setTimeout(a, 0);

};


function searchpull(v) {

if (v != '') {
searchpull1(v);
}

else {
document.getElementById('searchajax').style.border = "0px";
document.getElementById('searchajax').style.display = "none";

}
}




//ajax handler

var xmlHttp

function searchpull1(v)
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="findsearch.php"
url=url+"?searchstr="+v
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=searchpullchange
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function searchpullchange() 
{ 
if (xmlHttp.readyState==4|| xmlHttp.readyState=="complete")
 { 
 document.getElementById("searchajax").style.display = "block";
 document.getElementById('searchajax').style.border = "1px solid #999999";
 document.getElementById("searchajax").innerHTML=xmlHttp.responseText 
 } 
 else if (xmlHttp.readyState !=4) {
	document.getElementById("searchajax").style.display = "block";
	 document.getElementById('searchajax').style.border = "1px solid #999999";
	document.getElementById("searchajax").innerHTML= " <br/><h3 style=\"text-align: center;\"><img src=\"img1/load.gif\"/><br/>Gathering Results...</h3><br/>";
 }
 
}




//change list hover over
function changebg($id) {
document.getElementById($id).style.background = "#F9F9F9";
}

function changeback($id) {
document.getElementById($id).style.background = "white";
}


function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

function findproducts(type, page, searchstr, sort)
{  
f = document.getElementById('thestring').value;
if (f != '') {
searchstr = f; 	
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="findprods.php"
url=url+"?cattype="+type+"&page="+page+"&searchs="+searchstr+"&sort="+sort;
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 document.getElementById("results").innerHTML=xmlHttp.responseText 
 } 
 
 else if (xmlHttp.readyState!=4) {
	document.getElementById("results").innerHTML= " <br/><h3 style=\"text-align: center;\"><img src=\"img1/load.gif\"/><br/>Gathering Results...</h3><br/>";
 }
}

//drop down the shipping

function dropselect(x) {
	if (x == 'billing') {
		document.getElementById('dropadds').style.display = "";
	}
	
	else if (x =='shipping') {
		document.getElementById('dropadde').style.display = "";
	}
	else if (x == 'billingup') {
		document.getElementById('dropadde').style.display = "none";
	}
	
	else {
		document.getElementById('dropadds').style.display = "none";
	}
}
//change colour of border
function changebord(x) {
document.getElementById(x).style.borderColor = "#0000ff";
}

function backbord(x) {
document.getElementById(x).style.borderColor = "#999999";
}

//submit review
function submitreview() {
	//verify whether radio box is in use
	r = document.getElementsByName('rating')
	
	
	for(i=0; i < r.length; i++) {
		
		if(r[i].checked) {
			r1 = r[i].value;
			break
		}
		else {
		r1 = '';	
		}
	
	}
	
	n = document.getElementById('name').value;
	c = document.getElementById('comment').value;
	g = document.getElementById('ratingname').value;
	
	
	if (r1 == '' || n == '' || c == '') {
		
		if (n == '') {
			document.getElementById('name').style.borderColor = "#ff0000";
		}
		if (c == '') {
			document.getElementById('comment').style.borderColor = "#ff0000";
		}
		alert('Please fill in all required fields');
	}
	
	else {
	
		sendreview(c, n, r1, g);
		
	}
	
	
}

function sendreview(a, b, c, d)
{  

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
 	{
 		alert ("Browser does not support HTTP Request")
 		return
	 }
var url="./phpbin/includes/addreview.php"
url=url+"?rating="+c+"&name="+b+"&comment="+a+"&prodid="+d;
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=addreviewhandle 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function addreviewhandle() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { 
		 document.getElementById("review1").innerHTML=xmlHttp.responseText 
	 } 
	 
	 else if (xmlHttp.readyState!=4) {
		document.getElementById("review1").innerHTML= " <br/><h3 style=\"text-align: center;\"><img src=\"img1/load.gif\"/><br/>Adding...</h3><br/>";
	 }
}

function writereview() {
	
	document.getElementById('review1').style.display = "block";
	document.getElementById('h4header').style.display = "none";
	
		
}


function checkvalidform() {
	
	r = document.getElementsByName('shipping')
	
	
	for(i=0; i < r.length; i++) {
		
		if(r[i].checked) {
			r1 = r[i].value;
			break
		}
		
	}
	
	if (r1 == 'new') {
		
		if (document.getElementById('saddress1').value == '' || document.getElementById('saddress2').value == '' || document.getElementById('saddress3').value == '' || document.getElementById('saddress4').value == '' || document.getElementById('spostcode').value == '') {
		alert('Please enter all shipping information');
		return false;
		}
		else {
			
			return true;
			
		}
	}
	
	es = document.getElementsByName('billing')
	
	
	for(i=0; i < es.length; i++) {
		
		if(es[i].checked) {
			es1 = es[i].value;
			break
		}
		
	}
	
	if (es1 == 'new') {
		
		if (document.getElementById('baddress1').value == '' || document.getElementById('baddress2').value == '' || document.getElementById('baddress3').value == '' || document.getElementById('baddress4').value == '' || document.getElementById('bpostcode').value == '') {
		alert('Please enter all billing information');
		return false;
		}
		else {
			
			return true;
			
		}
	}
	
	
}

function submitform () {
	
	document.creditCard.submit();
}

//make the whole dropdown system work

//function dropDown (x) {
	
	//k = document.getElementById(x).clientHeight;
	//k = k-1;
	//x = document.getElementById(x)
	
	//for (i = k; i >= 0; i--) {
		
		//k = x.clientHeight;
		
		//k = k-1;
		//h = k + "px";
	
		//setTimeout(x.style.height = h, 3000);

	//}
	
	
	
//}


//drop down blog request

function dropblogs () {
document.getElementById('dropnews').innerHTML = "Gathering... &nbsp; &nbsp; <img src=\"img1/ajaxcircle.gif\"/>";	
setTimeout(dropblogs1,1500);

	
}

function dropblogs1 () {
	document.getElementById('noblog').style.display = "block";	
	document.getElementById('dropnews').innerHTML = "";	
}


//findposition of mouse 
function bringstat(e, stat, speed) {
	



	var posx = 0;
	var posy = 0;
	;

	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}

	
	switch (stat) {
		case 1: text = 'Network Capabable'; break;
		case 2: text = 'Colour Device'; break;
		case 3: text = 'Duplex Capability'; break;
		case 4: text = 'Black &amp; White Device'; break;
		case 5: text = 'Inkjet Device'; break;
		case 6: text = 'Laser Device'; break;
		case 7: text = 'Fax Capability'; break;
		case 8: text = 'A4 Paper Size'; break;
		case 9: text = 'A3 Paper Size'; break;
		case 10: text = 'Scan Capability'; break;
		case 11: text = speed + ' pages per minute'; break;
		case 12: text = 'A1 Paper Size'; break;
		case 13: text = 'A0 Paper Size'; break;
		case 14: text = 'Wide Format'; break;
		case 15: text = 'A2 Paper Size'; break;
		case 16: text = 'Professional Colour'; break;
		default: text = 'Unknown';
	}
	
	document.getElementById('stattext').innerHTML = text;
	document.getElementById('stattext').style.left = posx+"px";
	document.getElementById('stattext').style.top = posy+"px";
	document.getElementById('stattext').style.display = "block";
	document.getElementById('stattext').style.position = "absolute";
	
}

function dropstat() {
	setTimeout(der, '1000');
	
	function der () {
		document.getElementById('stattext').style.display = "none";
	}
}

function changeimghome (d) {
	
	if (d == 1) {
 		document.getElementById('changebot').innerHTML = "<img onmouseout=\"changeimghome(2)\" style=\"float:left;\" src=\"img1/callbackbothov.gif\" alt=\"\"/>" ;
	}
	
	else if (d == 2) {
		document.getElementById('changebot').innerHTML = "<img onmouseover=\"changeimghome(1)\"  style=\"float:left;\" src=\"img1/callbackbot.gif\" alt=\"\"/>" ;
	}
}


//flash info
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function fadeout(id, items) {
    
	if (items == id) {
		newid = 1;
	}
	else {
		newid = id+1;
	}
	
	$('#'+id).fadeOut('300', function () { 
            $('#'+newid).fadeIn('slow',  function () { 
                setTimeout("fadeout(newid, 6)", '3000'); 
            })
        });
        
}

function showReviewArea () {

	status = document.getElementById('reviewholder').style.display;
	if (status == 'block') {
		document.getElementById('reviewholder').style.display = "none";
	}
	else {
		document.getElementById('reviewholder').style.display = "block";
	}
}
var chatIntervalID;

$(document).ready(function(){
    initChat();
});
function initChat(){
    if($("#chat-is-restored").val() == "true"){
        actionChatShow();
        chatIntervalID = setInterval(function(){
            actionChatCheckForMessages();
        },5000);
        var height = $("#chat-area").css("height").replace("px", "");
        if(parseInt(height) > 250){
            $("#chat-area").css("height", "250px");
        }
        var objDiv = document.getElementById("chat-area");
        $("#chat-area").animate({ "scrollTop" : objDiv.scrollHeight }, 3000);
    }
    
    $(".start-chat").click(function(e){
        e.preventDefault();
        actionChatShow();
    });
    $("#chat-send").click(function(){
        actionChatSendMessage();
    });
    $("#chat-message-input").keydown(function(e){
        if(e.which == 13){ //if the enter key was pressed
            e.preventDefault();
            actionChatSendMessage();
        }
    });
    $("#chat-close").click(function(e){
        e.preventDefault();
        $.post("/_ajax/ajax.chat-close.php", {chat_head_id    : $("#chat-id").val()});
        $("#chat-name-input").val("");
        $("#chat-area").html("");
        $("#chat-area").css("display", "none");
        $("#chat-message-input").val("");
        $("#chat-id").val("");
        $("#chat-recieved-message-ids").val("");
        clearInterval(chatIntervalID);
        $("#chat-cont").fadeOut();
        $("#chat-cont").draggable("disable");
        $("#chat-name-input").slideDown("slow");
        $("#chat-name-input").prev().slideDown("slow");        
    });
    
    if($("#chat-status").val() == "online"){
        //setTimeout("actionChatAutoStart();", 20000);
    }
}

/* ACTION FUNCTIONS */

function actionChatShow(){
    if($.browser.msie){
        if($.browser.version == "6.0"){
            alert("Sorry, Live chat is not supported in this browser.\nPlease upgrade your browser.");
			return false;
        }
    }
    $("#chat-send").removeClass("hide");
    $("#chat-message-input").slideDown("slow");
    $("#chat-message-input").prev().slideDown("slow");
    $(".chat-closure-notice").remove();    
    var left = screen.width - 450;
    $("#chat-cont").css("position", "fixed");
    $("#chat-cont").css("left", left)
    $("#chat-cont").css("top", 30)
    $("#chat-cont").fadeIn();
    $("#chat-cont").draggable({handle: '#chat-handle', containment : 'parent'});        
    $("#chat-cont").draggable("enable");
    $("#chat-cont").removeClass("hide");    
	if($("#chat-area").html() == ""){
		var imagePoint = "<img class='chat-response-corner' src='/images/chat-point-response.png' />";
		$("#chat-area").append("<div id='chat-bubble-new' class='chat-response'><div class='chat-name'>Live Chat Operator</div>Hi, What can I help you with?</div>" + imagePoint + "<div class='clear'></div>");    
		$("#chat-area").slideDown("slow");
	}
}

function actionChatSendMessage(){
    var name    = $("#chat-name-input").val();
    var message = $("#chat-message-input").val();    
    if(message != "" && name != ""){
        $("#chat-name-input").removeClass("chat-error")
        if($("#chat-id").val() == ""){
            //This is a new chat
            $.post("/_ajax/ajax.chat-start.php", 
            {
               name    : name,
               message : message
            }, 
            function(response){
                var obj = jQuery.parseJSON(response);
                $("#chat-recieved-message-ids").val($("#chat-recieved-message-ids").val() + obj.chatLineID + ",");
                
                $("#chat-id").val(obj.chatID);
                if($("#chat-message-input").val().length > 4){
                    var imagePoint = "<img class='chat-request-corner' src='/images/chat-point-request.png' />";
                }else{
                    var imagePoint = "";
                }                
                $("#chat-area").append("<div id='chat-bubble-new' class='chat-request'><div class='chat-name'>" + name + "</div>" + $("#chat-message-input").val() + "</div>" + imagePoint + "<div class='clear'></div>");
                actionChatMakeBubble("chat-bubble-new");
                $("#chat-message-input").val("");
                chatIntervalID = setInterval(function(){
                    actionChatCheckForMessages();
                },5000);
                $("#chat-area").slideDown("slow");
                $("#chat-name-input").slideUp("slow");
                $("#chat-name-input").prev().slideUp("slow");
            });
        }else{
            //this is from existing chat
            $.post("/_ajax/ajax.chat-update.php", 
            {
               chatID : $("#chat-id").val(),
               message : message
            }, 
            function(response){
                var obj = jQuery.parseJSON(response);
                $("#chat-recieved-message-ids").val($("#chat-recieved-message-ids").val() + obj.chatLineID + ",");
                if($("#chat-message-input").val().length > 4){
                    var imagePoint = "<img class='chat-request-corner' src='/images/chat-point-request.png' />";
                }else{
                    var imagePoint = "";
                }
                $("#chat-area").append("<div id='chat-bubble-new' class='chat-request hide'><div class='chat-name'>" + $("#chat-name-input").val() + "</div>" + $("#chat-message-input").val() + "</div>" + imagePoint + "<div class='clear'></div>");
                actionChatMakeBubble("chat-bubble-new");
                $(".chat-request:last").slideDown("slow", function(){
                    var height = $("#chat-area").css("height").replace("px", "");
                    if(parseInt(height) > 250){
                        $("#chat-area").css("height", "250px");
                    }
                    var objDiv = document.getElementById("chat-area");
                    $("#chat-area").animate({ "scrollTop" : objDiv.scrollHeight }, 3000);
                });
                $("#chat-message-input").val("");
            });
        }
    }else{
        if(name == ""){
            $("#chat-name-input").addClass("chat-error");
            var imagePoint = "<img class='chat-response-corner' src='/images/chat-point-response.png' />";
            $("#chat-area").append("<div id='chat-bubble-new' class='chat-response hide'><div class='chat-name'>Live Chat Operator</div>Please enter your name above.</div>" + imagePoint + "<div class='clear'></div>");
            $("#chat-area").slideDown("slow");
            $(".chat-response:last").slideDown("slow", function(){
                var height = $("#chat-area").css("height").replace("px", "");
                if(parseInt(height) > 250){
                    $("#chat-area").css("height", "250px");
                }
                var objDiv = document.getElementById("chat-area");
                $("#chat-area").animate({ "scrollTop" : objDiv.scrollHeight }, 3000);
            });
        }
    }
}
function actionChatCheckForMessages(){
    var chatRecievedMessageIds = $("#chat-recieved-message-ids").val();
    chatRecievedMessageIds = chatRecievedMessageIds.substring(0, chatRecievedMessageIds.length - 1);
    
    
    $.post("/_ajax/ajax.chat-check-messages.php", 
    {
       chatID    : $("#chat-id").val(),
       chatRecievedMessageIds : chatRecievedMessageIds
    }, 
    function(response){
        if(response != ""){
            if(response == "closed"){
                $("#chat-send").addClass("hide");
                $("#chat-message-input").slideUp("slow");
                $("#chat-message-input").prev().slideUp("slow");
                $("#chat-message-input").after("<p class='redItalic chat-closure-notice'>This chat session has been ended by the operator.</p>")
                
                clearInterval(chatIntervalID);
            }else{
                var obj = jQuery.parseJSON(response);
                $("#chat-recieved-message-ids").val($("#chat-recieved-message-ids").val() + obj.chat_line_id + ",");
                if(obj.chat_line_content.length > 4){
                    var imagePoint = "<img class='chat-response-corner' src='/images/chat-point-response.png' />";
                }else{
                    var imagePoint = "";
                }
                $("#chat-area").append("<div id='chat-bubble-new' class='chat-response hide'><div class='chat-name'>" + obj.chat_user_full_name + "</div>" + obj.chat_line_content + "</div>" + imagePoint + "<div class='clear'></div>");
                actionChatMakeBubble("chat-bubble-new");
                $(".chat-response:last").slideDown("slow", function(){
                    var height = $("#chat-area").css("height").replace("px", "");
                    if(parseInt(height) > 250){
                        $("#chat-area").css("height", "250px");
                    }
                    var objDiv = document.getElementById("chat-area");
                    $("#chat-area").animate({ "scrollTop" : objDiv.scrollHeight }, 3000);
                });
            }
        }        
    });
}
function actionChatMakeBubble(id){
//    var settings = {
//        tl: { radius: 10 },
//        tr: { radius: 10 },
//        bl: { radius: 10 },
//        br: { radius: 10 },
//        antiAlias: true
//    }
//    var divObj = document.getElementById(id);
//    curvyCorners(settings, divObj);
//    $("#" + id).attr("id", "");
}

function actionChatAutoStart(){
    if($("#chat-cont").hasClass("hide")){
        actionChatShow();
        var imagePoint = "<img class='chat-response-corner' src='/images/chat-point-response.png' />";

        var autoMessage = "Hi, Do you need any help finding what you are looking for?";
		$("#chat-area").html("");
        $("#chat-area").append("<div id='chat-bubble-new' class='chat-response hide'><div class='chat-name'>Live Chat Operator</div>" + autoMessage + "</div>" + imagePoint + "<div class='clear'></div>");
        $("#chat-area").removeClass("hide");
        $(".chat-response:last").slideDown("slow");        
    }
}
if($.browser.msie){
    if($.browser.version == "7.0"){
        (function($) {
            $.fn.fadeIn = function(speed, callback) {
                return this.animate({opacity: 'show'}, speed, function() {
                        if ( $.browser.msie )
                        {
                                this.style.removeAttribute('filter');
                        }
                        if ( $.isFunction(callback) )
                        {
                                callback.call(this);
                        }
                });
            };

            $.fn.fadeOut = function(speed, callback) {
                return this.animate({opacity: 'hide'}, speed, function() {
                        if ( $.browser.msie )
                        {
                                this.style.removeAttribute('filter');
                        }
                        if ( $.isFunction(callback) )
                        {
                                callback.call(this);
                        }
                });
            };

            $.fn.fadeTo = function(speed, to, callback) {
                return this.animate({opacity: to}, speed, function() {
                        if ( to == 1 && $.browser.msie )
                        {
                                this.style.removeAttribute('filter');
                        }
                        if ( $.isFunction(callback) )
                        {
                                callback.call(this);
                        }
                });
            };
        })(jQuery);
    }
}
