var windowHref = window.location.href;
var URLDomain    = windowHref.substring(0,windowHref.lastIndexOf("/"));
if (!URLDomain) {URLDomain = windowHref;}
var serverPath = URLDomain;
var userURL    = serverPath + "/user/";

var isComboBoxOpened = false;


function $id(id){
	return document.getElementById(id);
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
	do {
		curleft += obj.offsetLeft;
		curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}


function renderCombo(){
	var position = findPos($id("product"));

    $id("product").style.marginBottom = "3px";
	$id("combo_box").style.position   = "absolute";
	$id("combo_box").style.width      = "227px";
	$id("combo_box").style.left       = position[0];
	$id("combo_box").style.top        = position[1] + 20;
}


function activateComboItem(item){
	var nodes = $id("combo_box").childNodes;
	
	for (var i = 0; i < nodes.length; i++) {
		if(nodes[i].nodeName == "DIV"){
			nodes[i].className = "combo_item";
			nodes[i].style.borderColor = "#FFFFFF";
		}
	}
	item.className += " combo_item_active";
	item.style.borderColor = "#A3BAE9";
}


function selectComboItem(item){
	$id("combo_box").style.display = "none";
    $id("product").value = item.innerHTML;
	productChanged($id("product").value);
	isComboBoxOpened = false;
}


function showOrHideDropDown (event){
	if(isComboBoxOpened){
		$id("combo_box").style.display = "none";
		isComboBoxOpened        = false;
	} else {
		$id("combo_box").style.display = "";
		isComboBoxOpened        = true;
	}
}


function isEmailValid(e) {
	var ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.+@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	for(var i=0; i<e.length; i++){
		if (ok.indexOf(e.charAt(i))<0) {
			return false;
		}
	}
	if (document.images) {
		var re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		var re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,8}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return -1;
		}
	}
}
function isUrlValid (theurl) {

	var tomatch = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
   
    if (tomatch.test(theurl)) {
            return true;
    } else {
          return false; 
    }
}

function signupEnter(form,event){
	if(event.keyCode == 13){
		prepareSignup();
	}
}

var signUpButtonPress = false; 
function prepareSignup(){
	if(signUpButtonPress) return;
	var fName  = ($id("fName").value).trim();
	var lName  = ($id("lName").value).trim();
	var email  = $id("email").value;
	var pass   = ($id("pass").value).trim();
	var company = $id("company").value;
	var companySize = $id("companySize").value;
	var industry = $id("industry").value;
	var country = $id("country").value;
	var phone = $id("phone").value;
	var website = $id("website").value;
	if(website == "add website URL for monitoring")
		website = "";
	var errMsg = $id("errMsg");
	var msg    = $id("msg");
	
	errMsg.innerHTML = "";
	msg.innerHTML    = "";

    if(fName != ""){
		if(lName != ""){
			if(isEmailValid(email)){
				if(pass.length >= 6){
						fName = encodeURIComponent(fName);
						lName = encodeURIComponent(lName);
						email = encodeURIComponent(email);
						pass  = encodeURIComponent(pass);
						company = encodeURIComponent(company);
						companySize = encodeURIComponent(companySize);
						industry = encodeURIComponent(industry);
						country = encodeURIComponent(country);
						phone = encodeURIComponent(phone);
						if(website != "" && !isUrlValid(website)){
							errMsg.innerHTML = "Please enter valid website url.";
							return;
						}
						website = encodeURIComponent(website);
						
						var billingMethod = "paypal";
						var cycle = "M";
						
						var data = "type=signUp&email=" + email;					
						data    += "&password=" + pass;
						data    += "&timezone=" + (-new Date().getTimezoneOffset());
						data    += "&fname=" + fName;
						data    += "&lname="+lName;
						data    += "&company="+company;
						data    += "&companySize="+companySize;
						data    += "&industry="+industry;
						data    += "&country="+country;
						data    += "&phoneNumber="+phone;
						data    += "&im=&mobphone=&imtype=1&cycle=M&billingMethod=paypal";
						data    += "&itemId=" + 25+"&itemCount_"+25+"="+1;
						if(adv){
							data += "&adv=" + adv;
						} 
						if(loc){
							data += "&loc=" + loc;
						}
						data    += "&website="+website;	
						if($id("referrer") != undefined)
							data    += "&referrer=" + $id("referrer").value;
						errMsg.innerHTML = "<div style='color:#669900'>Checking ...</div>";
						signUpButtonPress= true;
						Request.sendPOST(userURL, data, trialSingupResponse);						
				} else {
					errMsg.innerHTML = "Please enter password ( at least 6 characters ).";
				}
			} else {
				errMsg.innerHTML = "Please enter valid email.";
			}
		} else {
			errMsg.innerHTML = "Please enter your last name.";
		}
	}
	else {
		errMsg.innerHTML = "Please enter your first name.";
	}
	
    
}


function trialSingupResponse ( response ) {
	var responseChildNodes = response.responseXML.documentElement.childNodes;
    var res = responseChildNodes[0].nodeValue;
		signUpButtonPress = false;
	if(responseChildNodes[0].firstChild){
		res = responseChildNodes[0].firstChild.nodeValue;
	}
	
	var errMsg = $id("errMsg");
	
	$id("msg").innerHTML = "";
	
    switch (res) {
        case "success":
            errMsg.innerHTML = "";
            window.parent.location.href = serverPath+"/thankYou.jsp";
            break;
        case "error":
            errMsg.innerHTML = "Error";
        case "inuse":
        case "user exists":
            errMsg.innerHTML = "This email address is already in use";
            break;
        default:
            errMsg.innerHTML = res;
            break;
    }
}

function productChanged(value){
	var productFrames = $id("productFrames").childNodes;
	for(var i=0;i<productFrames.length;++i){
		if(productFrames[i].tagName != "DIV") continue;
		if(value == productFrames[i].id){
			$id(value).style.display = "block";
			$id(value).firstChild.src = $id(value).firstChild.src; 
		}
		else
			productFrames[i].style.display = "none";
	}
	
}
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
