/*****************************************************
MouseOver
function lib_bwcheck Copyright (C) 2001 Thomas Brattli
All other source code
Copyright (C) 2003 Ron Endgecomb 2nd
*****************************************************/

function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion;
	this.agent=navigator.userAgent;
	this.dom=document.getElementById?1:0;
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6;
	this.mac=this.agent.indexOf("Mac")>-1;
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
	this.xhr = (window.XMLHttpRequest)?1:0;
	this.axo = (window.ActiveXObject)?1:0;	
	return this;
}

var bw=lib_bwcheck();

function isObj(obj) {
	this.el = bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval('document.'+obj):0;
	return((this.el)?true:false);
	}

function makeObj(obj,nest){
    nest=(!nest) ? "":'document.'+nest+'.'
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
    return this
	}

function getObj(obj){
	this.el=bw.dom?document.getElementsByTagName(obj):bw.ie4?document.all[obj]:bw.ns4?eval('document.'+obj):0;
	return this;
	}

function swapImage(){
	swapHeaderImage();
	var imgarr=getObj('img');
	var imgPreload=new Array();
	for(var i=0; i<imgarr.el.length; i++){
		imgPreload[i] = new Image();
		temp = imgarr.el[i].getAttribute('src');
		if(temp.indexOf("1.") > -1){
			begin = temp.substring(0,temp.indexOf("1."));
			end = temp.substring(temp.indexOf("1.") + 1, temp.length);
			imgPreload[i] = begin + 2 + end;
			setMouseCommands(imgarr.el[i],imgarr.el[i].src,imgPreload[i]);
			}
		if(temp.indexOf("btn_learnMore") > -1 && !(temp.indexOf("1.") > -1)){
			begin = temp.substring(0,temp.indexOf("btn_learnMore"));
			imgPreload[i] = begin + "btn_learnMore_Over.gif";
			setMouseCommands(imgarr.el[i],imgarr.el[i].src,imgPreload[i]);
			}
		}
	//Loook for sofware sumbit button
	var inputBtn = (isObj('softwareSubmit'))?makeObj('softwareSubmit'):null;

	/* whats the problem?*/
	if(inputBtn != null) {
		inputBtn.el.onmouseover = function(){
			this.src = 'img/btn_softwaresubmit2.gif';
			}
		inputBtn.el.onmouseout = function(){
			this.src = 'img/btn_softwaresubmit1.gif';
			}		
		}
	}
	
function setMouseCommands(img,source,swapimg){
	img.onmouseover = function(){
		img.src = swapimg;
		}
	img.onmouseout = function(){
		img.src = source;
		}	
	}
	
function setBG(elm, color) {
	elm.style.background = color;
	}
	
function setSectionMouseCommands(){
	var divarr = getObj('div');
	var divSect = new Array();	
	for(var i=0; i<divarr.el.length; i++){
		temp =  (divarr.el[i].getAttribute('id'))?divarr.el[i].getAttribute('id'):"";
/* 11-11-05 REVOMED TO ELIMATE SECTION HOVER 
		if( temp.length > 0 && temp.indexOf("contSec") > -1) {
			var secNum = parseInt(temp.substring(temp.length-1,temp.length))
			divSect[secNum] = divarr.el[i];
			}
*/
		}
	for(var j=1; j < divSect.length; j++){
		var tmpIndex = j;
		var sec2 = (j<=3)?(tmpIndex+3):(tmpIndex-3);
		setPairMouseCommmands(divSect[j],divSect[sec2]);
		}
	}

function setPairMouseCommmands(sec1,sec2){
	sec1.onmouseover = function() {
		sec1.style.background = "#FBECAE";
		sec2.style.background = "#FBECAE";		
		}
	sec2.onmouseover = function() {
		sec1.style.background = "#FBECAE";
		sec2.style.background = "#FBECAE";		
		}
	sec1.onmouseout = function() {
		sec1.style.background = "#FFFFFF";
		sec2.style.background = "#FFFFFF";		
		}
	sec2.onmouseout = function() {
		sec1.style.background = "#FFFFFF";
		sec2.style.background = "#FFFFFF";		
		}
	}

var contentID;
function checkForm(form,formID){
	var base = form;

	var alertBegin = "Please complete or modify the following form fields:\n\n";
	var alertEnd = "\nResubmit form after the changes have been made.";
	var error = false;
	var firstError = false;
	var problems = "";

	if(base.Name.value == ""){
		error = true;
		problems += "\t* Name\n";
		}
	if(base.Phone.value == ""){
		error = true;
		problems += "\t* Phone\n";
		}

	if(base.Email.value.indexOf("@") <= -1 ||
			base.Email.value.indexOf(".") <= -1 ||
			base.Email.value.length == 0){
				error = true;
				base.Email.value = "";
				problems += "\t* Invalid Email\n";
			}
 
	if(error == true) {
		alert(alertBegin + problems + alertEnd)
		}
	contentID = formID;
	if((bw.xhr || bw.axo) && !error){
			var url;
			switch(formID) {
				case 'pp':
				url = 'inc_QuickForm.cfm?';
				break;
				case 'psm':
				url = 'inc_PrintShopForm.cfm?';
				break;
				case 'webinar':
				url = 'inc_WebinarForm.cfm?';
				break;
				default:
				url = 'inc_QuickForm.cfm?';
				}
	
				var loadDiv = makeObj(formID + 'Loading');
				loadDiv.css.display = "block";
				
			var params = "";			
			for(var i=0; i<base.elements.length; i++){
				params += base.elements[i].name + '=';
				params += URLEncode(base.elements[i].value) + '&';		
				}
			GWD_load_doc(url, params, formID);
			return(false);
			}
	else return (!error);	
	}
	
function focusField(fieldName) {
	var fieldObj = (isObj(fieldName))?makeObj(fieldName):null;
	if(fieldObj != null) fieldObj.el.focus();
	return;
	}
	
var children = null;
var displayMax = 5;
var dlHidden = new Array();
var dlAr = new getObj('dl');

function setDl(){
	for(var i=0; i<dlAr.el.length; i++){
		if(!(dlAr.el.length > 0))break;
		children = dlAr.el[i].childNodes;
		dlAr.el[i].getAttribute('class');
		var dtTotal = 0;
		var ddTotal = 0;
		var dtCount = 0;
		var ddCount = 0;
		var tempClass = (dlAr.el[i].getAttribute('class') != null)?dlAr.el[i].getAttribute('class'):null;
		if(tempClass && tempClass.indexOf('show') > -1)
			displayMax = parseInt(tempClass.substring(4,tempClass.length));
		for(var j=0; j<children.length; j++){
			if(children[j].nodeName == "DT"){
				if(dtTotal >= displayMax){
					dlHidden[parseInt(dtCount)] = new Array(2);
					dlHidden[parseInt(dtCount)][0] = children[j];
					children[j].style.display = "none";
					dtCount++;
					}
				dtTotal++;
				}
			if(children[j].nodeName == "DD"){
				if(ddTotal >= displayMax){
					dlHidden[parseInt(ddCount)][1] = children[j];
					children[j].style.display = "none";
					ddCount++;
					}
				ddTotal++;
				}
			}//END for
		}//END for
		if(dlHidden.length >= 1) setDlExpand();
	}
	
function setDlExpand(){
	firstDt = dlHidden[0][0]
	tempText = firstDt.innerHTML;
	firstDt.innerHTML = "<h4 class=\"moreFeatures\">More Features</h4>";
	firstDt.style.display = "block";
	firstDt.onclick = function(){
		firstDt.innerHTML = tempText;
		for(var i=0; i < dlHidden.length; i++){
			for(var j=0; j < dlHidden[i].length; j++)dlHidden[i][j].style.display = "block";
			}
		}
	}

var lastOpenBlurbName = null;
var lastOpenBlurbObj = null

function openBlurb(blurb) {
	var sec = new makeObj(blurb);
	if(lastOpenBlurbObj != null && lastOpenBlurbName != blurb) lastOpenBlurbObj.css.visibility = "hidden";
	sec.css.visibility = "visible";
	lastOpenBlurbObj = sec;
	}
	
function closeBlurb(blurb) {
	var sec = new makeObj(blurb);
	sec.css.visibility = "hidden";
	}

var openForms = new Array();

function openForm(form) {
	var sec = new makeObj(form);
	var init = false;
	for(var i=0; i<openForms.length; i++){
		if(openForms[i] == form){
			init = true;
			openForms.splice(i,1);
			}
		}

	if(init){ sec.css.display = "none"; }
	else { 
		sec.css.display = "block";
		openForms[openForms.length] = form;
		}
	}
	
function swapHeaderImage() {
	var transBtn = (isObj('transBtn'))?new makeObj('transBtn'):null;
	var promBtn = (isObj('promBtn'))?new makeObj('promBtn'):null;
	var headImg = (isObj('headerImage'))?new makeObj('headerImage'):null;
	var transList = (isObj('transList'))?new makeObj('transList'):null;
	var promList = (isObj('promList'))?new makeObj('promList'):null;
	
	if(transBtn && promBtn && headImg && 
		transList && promList ){
		promBtn.el.onmouseover = function(){
			promBtn.el.src = "http://www.printersource.com/Software/img/btn_promotional2.jpg";
			transBtn.el.src = "http://www.printersource.com/Software/img/btn_transactional.jpg";
			headImg.el.src = "http://www.printersource.com/Software/img/header_promotional.jpg";
			promList.css.display = "block";
			transList.css.display = "none"
			}
		transBtn.el.onmouseover = function(){
			transBtn.el.src = "http://www.printersource.com/Software/img/btn_transactional2.jpg";
			promBtn.el.src = "http://www.printersource.com/Software/img/btn_promotional.jpg";
			headImg.el.src = "http://www.printersource.com/Software/img/header_transactional.jpg";
			transList.css.display = "block";
			promList.css.display = "none"
			}
		}
	}
var req;

function GWD_load_doc(url, params, contentID) {
	var content = new makeObj(contentID + 'Guts');
	content.css.visibility = "hidden";
	req = bw.xhr?new XMLHttpRequest():bw.axo?new ActiveXObject("Microsoft.XMLHTTP"):0;
	if(req){
		req.onreadystatechange = processReqChange;
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send(params);
		}
	}//END GWD_load_doc

function processReqChange() {
	if (req.readyState == 4) {
        if (req.status == 200) {
			setTimeout(swapContent,2000);
        	} 
		else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        	}
    	}
	}//END

function swapContent(){
	var loadDiv = makeObj(contentID + 'Loading');
	loadDiv.css.display = "none";
    var content = new makeObj(contentID + 'Guts');
	content.el.innerHTML = req.responseText;
	content.css.visibility = "visible";
	}//END GWD_loading

function URLEncode(url) {
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";
	var encoded = "";
	for (var i = 0; i < url.length; i++ ) {
		var ch = url.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for
	return(encoded);
};