function getViewportDimensions() {
    var intH = 0, intW = 0;
    
    if(self.innerHeight) {
       intH = window.innerHeight;
       intW = window.innerWidth;
    } 
    else {
        if(document.documentElement && document.documentElement.clientHeight) {
            intH = document.documentElement.clientHeight;
            intW = document.documentElement.clientWidth;
        }
        else {
            if(document.body) {
                intH = document.body.clientHeight;
                intW = document.body.clientWidth;
            }
        }
    }

    return {
        height: parseInt(intH, 10),
        width: parseInt(intW, 10)
    };
}
var viewport = getViewportDimensions();
function RequestCallBack(sAction, sValues) {
	if(document.getElementById('divCallBack')) {
		MouseYPosition = (viewport.height / 3) - (document.getElementById('divTellAFriend').offsetHeight / 3) + document.documentElement.scrollTop;
		MouseXPosition = (viewport.width / 3) - (document.getElementById('divTellAFriend').offsetWidth / 3);
		PlaceHolder = document.getElementById('divCallBack');
		FramePlaceHolder = document.getElementById('frameCallBack');
		if(!sAction) {
			grayOut(true);
			FramePlaceHolder.style.display='block';
			FramePlaceHolder.style.left = MouseXPosition+'px';
			FramePlaceHolder.style.top = MouseYPosition+'px';
			PlaceHolder.style.display='block';
			PlaceHolder.style.left = MouseXPosition+'px';
			PlaceHolder.style.top = MouseYPosition+'px';
		}
		PlaceHolder.innerHTML = '<div align="center" style="padding-top:50px; font-weight:bold;"><img src="/images/animations/ajax-loader-white.gif"/><br/><br/>Please wait...</div>';
		sURL = "/includes/requestcallback/requestcallback.asp?action=" + sAction + "&test=cb&values=" + sValues
		if(sURL!='') {
			if(bDebug) {
				if(confirm('Open '+ sURL)) {
					window.open(sURL);
				}
			}
			setTimeout("loadCBDoc('"+sURL+"')", 500);
		}else{
			alert('No url defined');	
		}
	}
}

function CloseCB() {
	if(document.getElementById('divCallBack')) {
		FramePlaceHolder = document.getElementById('frameCallBack');
		FramePlaceHolder.style.display='none';
		PlaceHolder = document.getElementById('divCallBack');
		PlaceHolder.style.display='none';
		grayOut(false);
	}
}

function loadCBDoc(url) {
    // branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
        reqCB = new XMLHttpRequest();
		reqCB.onreadystatechange = processCB;
        reqCB.open("GET", url, true);
        reqCB.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        reqCB = new ActiveXObject("Microsoft.XMLHTTP");
        if (reqCB) {
            reqCB.onreadystatechange = processCB;
            reqCB.open("GET", url, true);
            reqCB.send();
        }
    }
}
function processCB() {
	if (reqCB.readyState == 4) {
		if (reqCB.status == 200){
			PlaceHolder = document.getElementById('divCallBack');
			PlaceHolder.innerHTML = reqCB.responseText;
		}
	}
}

function SubmitCB(oFrm) {
	var e='';
	sName = oFrm.name.value;
	sPhone = oFrm.phone.value;
	sWhenIsBest = encodeURIComponent(oFrm.whenisbest.value);
	if(!sName){e+='- Please enter your name\n'}
	if(!sPhone){e+='- Please enter your phone number\n'}
	if(!sWhenIsBest){e+='- Please enter the best time to contact you\n'}
	if(e) {
		alert('The following errors occurred!\n\n'+e);
	}else{
		sName = sName.replace("'", "\\'");
		RequestCallBack('sendemail',sName + '|' + sPhone + '|' + sWhenIsBest);
	}
	return false;
}
