/*-------------------------------GLOBAL VARIABLES------------------------------------*/

var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring, lb;

/*-----------------------------------------------------------------------------------------------*/

//Browser detect script origionally created by Peter Paul Koch at http://www.quirksmode.org/

function getBrowserInfo() {
	if (checkIt('konqueror')) {
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('safari')) browser 	= "Safari"
	else if (checkIt('omniweb')) browser 	= "OmniWeb"
	else if (checkIt('opera')) browser 		= "Opera"
	else if (checkIt('webtv')) browser 		= "WebTV";
	else if (checkIt('icab')) browser 		= "iCab"
	else if (checkIt('msie')) browser 		= "Internet Explorer"
	else if (!checkIt('compatible')) {
		browser = "Netscape Navigator"
		version = detect.charAt(8);
	}
	else browser = "An unknown browser";

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS) {
		if (checkIt('linux')) OS 		= "Linux";
		else if (checkIt('x11')) OS 	= "Unix";
		else if (checkIt('mac')) OS 	= "Mac"
		else if (checkIt('win')) OS 	= "Windows"
		else OS 								= "an unknown operating system";
	}
}

function checkIt(string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}


/*-------------------------------Enivest Kapaks------------------------------------*/

function init_kapaks() {
	bod 				= document.getElementsByTagName('body')[0];
	overlay 			= document.createElement('div');
	overlay.id		= 'overlay';
	lb					= document.createElement('div');
	lb.id				= 'lightbox';
	lb.className 	= 'loading';
	lb.innerHTML	= '<div id="lbLoadMessage">' +
						  '<p>Vent litt, vi sjekkar linja di...</p>' +
						  '</div>';
	bod.appendChild(overlay);
	bod.appendChild(lb);
	
	var form = $('phonecheck');
	form.observe('submit', checkphone);
	getBrowserInfo();
	Event.unloadCache;
}

function checkphone(event) {
	// show lightbox
	activate();
		
	Event.stop(event);
}
function activate(){
	if (browser == 'Internet Explorer'){
		getScroll();
		prepareIE('100%', 'hidden');
		setScroll(0,0);
		hideSelects('hidden');
	}
	displayLightbox("block");
}
function loadInfo() {
	var params = $('phonecheck').serialize(true);
	//var url = '/enivest/kapaks.php';
  var url = '/kapaks.php';
	new Ajax.Request(
    url,
	  {
			method: 'get', 
			parameters: params, 
			onComplete: function(transport) {
        var json = transport.responseText.evalJSON();
        //alert(json.statusCode);
				var content = renderJson(json);

				var closeLink = new Element('a', {id: 'closeLink', href: '#', title: 'Lukk vindauge'}).update('X');
				closeLink.observe('click', deactivate);
					
				Element.insert($('lbLoadMessage'), {after: content});
				Element.insert($('lbLoadMessage'), {after: closeLink});
				$('lightbox').className = "done";	
			}
		}
  );
}
function renderJson(json) {
  var div = new Element('div', {id: 'lbContent'});
  if(json.statusCode=="100") {
    div.insert(new Element('h2').update('Resultat av breibandsjekk p&aring; telefonnummer ' + json.telephoneNumber + ':'));
    div.insert(new Element('p').update('Breiband er tilgjengeleg p&aring; di linje. Din sentralsignatur er <strong>'+json.connectionPointInsideName+'</strong>. Di linjelengde er <strong>'+json.totalLength+' meter</strong>.'));
    div.insert(new Element('h3').update('Tilgjengelege produkt i privatmarknaden:'));
    
    // display product table
    var table = new Element('table');
    for (var i=0;i<json.products.length;i++) {
      var product = json.products[i].product;
      if (product.product_category_id==1) {
        var tr = new Element('tr');
        var speed = product.speed_down ? ' ('+product.speed_down+'/'+product.speed_up+')' : "";
        var title = new Element('td', {className: 'productname'}).update(product.title + speed); tr.insert(title);
        var price = new Element('td').update('Kr '+product.price+',- per m&aring;nad'); tr.insert(price);
        var link = new Element('a', {title: 'Bestill breiband', href: '/bestill/?kapaksnummer='+json.telephoneNumber+'#panel_fasttelefon'});
        var img = new Element('img', {src: 'http://www.enivest.no/wordpress/wp-content/themes/enivest/images/table-order-button.png', alt: 'Bestill breiband'});
        link.insert(img);
        var order = new Element('td', {className: 'p-order'}).insert(link); tr.insert(order);
        table.insert(tr);
      }
    }
    div.insert(table);
    
    // display terms
    var terms = new Element('div', {className: 'terms'});
    var termsTitle = new Element('h3').update('Atterhald om leveranse');
    var termsText = new Element('p').update('Enivest vil alltid pr&oslash;ve &aring; levere samband i sitt dekningsomr&aring;de dersom det er mogleg, men kan ikkje garantere leveranse eller kapasitet p&aring; linja, dersom linjeforholda fram til kunden ikkje tillet det. <a href="/privat/vilkar-enivest-privat/">Jf. v&aring;re vilk&aring;r &sect;4</a>.<br>Ein b&oslash;r vere merksam p&aring; at kapasitet ein kan forvente i alle tilfeller er avhengig av lengd og kvalitet p&aring; koparkablane fr&aring; sentralen og fram til din bustad.');
    terms.insert(termsTitle);
    terms.insert(termsText);
    div.insert(terms);
  }
  else {
    div.insert(new Element('h2').update(json.statusText));
  }
  return div;
  
}
function deactivate(event) {
	Element.remove($('lbContent'));
	Element.remove($('closeLink'));
		
		if (browser == "Internet Explorer"){
			setScroll(0,lb.yPos);
			prepareIE("auto", "auto");
			hideSelects("visible");
		}
		
		displayLightbox("none");
		$('lightbox').className = "loading";	
		Event.stop(event);
}
function displayLightbox (display) {
	$('overlay').style.display = display;
	$('lightbox').style.display = display;
	if(display != 'none') loadInfo();
}
function prepareIE(height, overflow){
	bod = document.getElementsByTagName('body')[0];
	bod.style.height = height;
	bod.style.overflow = overflow;
  
	htm = document.getElementsByTagName('html')[0];
	htm.style.height = height;
	htm.style.overflow = overflow; 
}
function hideSelects(visibility){
	selects = document.getElementsByTagName('select');
	for(i = 0; i < selects.length; i++) {
		selects[i].style.visibility = visibility;
	}
}
function getScroll(){
	if (self.pageYOffset) {
		lb.yPos = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){
		lb.yPos = document.documentElement.scrollTop; 
	} else if (document.body) {
		lb.yPos = document.body.scrollTop;
	}
}
function setScroll(x, y){
	window.scrollTo(x, y); 
}
document.observe("dom:loaded", function() {
  init_kapaks();
});