
// Notes : Add div element dynamically. FF isn't recognising the contents of the div and hence disply:none isn;t working
var d = document;

var divObjId = "";
function getO(id, css){
	var o = (document.getElementById)?document.getElementById(id):document.all[id];
	return o;
}
function getHeight(yOffset) {
	var y;
	if (self.innerHeight) // all except Explorer
		y = self.innerHeight;
	else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
		y = document.documentElement.clientHeight;
	else if (document.body) // other Explorers
		y = document.body.clientHeight;

	return y + yOffset;
}

function HttpRequestComplete(str){
	getO('faqContent').innerHTML = str;
}	

function initDetails(){
	var diffInHeight = parseInt(getO('faq_bg').style.height) - 800;
	var sel = document.getElementsByTagName('select');
	for (i = 0; i<sel.length; i++){
		sel[i].style.display = 'none';
	}
	getO('faqContent').style.display = 'block';
	getO('faqContent').style.height= getHeight(-100) + 'px';
	getO('faq_container').style.display = 'block';
}
function getDetails(serverPath){
	getO('faq_bg').style.height = document.body.offsetHeight + 'px';
	getO('faq_bg').style.width = document.body.offsetWidth -2 + 'px';
	getO('faq_bg').style.display = 'block';
	getO('faq_container').style.display = 'block';
	window.httpRequest.call({url:serverPath + '/shop/mobile_broadband/faq', method:'get', onComplete:HttpRequestComplete, response:'TEXT'});
	initDetails();
}
function removeDetails(){
	getO('faqContent').innerHTML = '<div class="loading"><span>loading...</span></div>';
	getO('faq_bg').style.display = 'none';
	getO('faq_container').style.display = 'none';
	var sel = document.getElementsByTagName('select');
	for (i = 0; i<sel.length; i++){
		sel[i].style.display = 'block';
	}
}

function getDetailsPage(serverPath,page){
	getO('faq_bg').style.height = document.body.offsetHeight + 'px';
	getO('faq_bg').style.width = document.body.offsetWidth -2 + 'px';
	getO('faq_bg').style.display = 'block';
	getO('faq_container').style.display = 'block';
	window.httpRequest.call({url:serverPath + page, method:'get', onComplete:HttpRequestComplete, response:'TEXT'});
	initDetails();
}

function getMBDetails(type){
	getO('faq_bg').style.height = document.body.offsetHeight + 'px';
	getO('faq_bg').style.width = document.body.offsetWidth -2 + 'px';
	getO('faq_bg').style.display = 'block';
	getO('faq_container').style.display = 'block';
	getO('faqContent').innerHTML = getO(type).innerHTML;
	initDetails();
}

var HttpRequest = function (){
    this.url = false;
    this.method = 'GET';
    this.response = 'XML';
    this.contentType = 'application/x-www-form-urlencoded';
    this.eventReadyState = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
    this.httpObject = function(){
        var o;
        try{
            o = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            try{
                o = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e){
                o = false;
            }
        }
	    if(!o && typeof XMLHttpRequest!='undefined'){
		    o = new XMLHttpRequest();
	    }
	    if(typeof o=='object'){
	        return o;
	    }else{
	        //alert('Sorry your browser doesn\'t support the latest xml object\nBrowsers supported are:\nOn windows: IE5.5+, Mozilla Firefox\nOn Mac: Mozilla Firefox\nPlease upgrade your browser to use the editing interface.');
	        // Insert non JavaSript link here.
	        return false;
	    }
    }
    
    this.call = function(o){
        var url = (o.url)? o.url : this.url;
        var method = (o.method)? o.method : this.method;
        var params = (o.params)? o.params : false;
        var param = "";
        var response = (o.response)? o.response : this.response;
        var contentType = (o.contentType)? o.contentType : this.contentType;
        if(!url){alert('You must at list specify an url in the call method.'); return false}
        var httpObject = this.httpObject();
        if(typeof httpObject != 'object'){return false;}
		    httpObject.onreadystatechange = function(){
			if (window.httpRequest.eventReadyState[httpObject.readyState] == 'Complete') {
				if (httpObject.status == 200) {					
				    if(response == 'TEXT'){
    					o.onComplete(httpObject.responseText);
    				}else if(response=='JS'){
    				    eval(httpObject.responseText)
				    }else{
    					o.onComplete(httpObject.responseXML.documentElement);
				    }
				} else {
			        alert('Sorry There was a problem making the request.\nThe request returned the following error code : ' + httpObject.status);
				}
			}
		}
		httpObject.open(method, url, true);
		httpObject.setRequestHeader('Content-Type', contentType);
		httpObject.setRequestHeader('Connection','close');
		if(params){
		    for(var key in params){
		        param += key + '=' + params[key] + '&';
		    }
		}
		// alert('param = ' + param);
		httpObject.send(param);
    }
    window.httpRequest = this;
}
new HttpRequest();

