// changes language for fortumo site
function changeLanguage(locale){
    var langurl = "fortumo/cookie_locale?lang=";
    langurl = langurl+locale;
    setCookie('lang',locale,365);
    setCookie('referer',window.location,365);
    window.location.href=langurl;
}
// for setting named cookie with given value and expire time
function setCookie(c_name,value,expiredays){
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
// for getting named cookie
function getCookie(c_name){
    if (document.cookie.length>0){
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1){ 
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1){
                c_end=document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}
// for checking locale cookie to set correct value in language selection
// add more values into array if more languages are available
function checkCookieLocale(){
    locale=getCookie('lang');
    if (locale!=null && locale!=""){
        var locales= new Array(2);
        locales[0]="et";
        locales[1]="en";
        
        var langSelectionId="languages";
        var elem=document.getElementById(langSelectionId);
        
        var x=0;
        for (x=0; x<locales.length; x++){
            if(locales[x]==locale){
                elem.options[x].selected=true;
                break;
            }
        }
    }
}
// find query parameter (http://www.netlobo.com/url_query_string_javascript.html)
function query_param(name){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+name+"=([^&#]*)");
  var results = regex.exec(window.location.href);
  if (results == null)
    return null;
  else
    return results[1];
}
// save query parameter as long lasting cookie (to store while page caching)
function storeCookie(name){
  var val = query_param(name);
  if (val) {
    setCookie(name,val,365);
  }
}

//for eula accept
function accept_eula() { // new user step 2
    var button = document.getElementById("nextBut2");
    var accept = document.getElementById("accept");
	var ccode = document.getElementById("ccode");
	var message = document.getElementById("signup2_mess");
	
    if (accept.checked && ccode.value != "") {
        button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.signup_eula_form.submit();
        }
		message.style.visibility = "visible";
    } else {
        button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
		message.style.visibility = "hidden";
    }
}

// a hack for IE
function reset_greedy_height(elem_id) {
  $(elem_id).removeClassName('greedy-height');
  $(elem_id).addClassName('greedy-height');
}

function accept_service_eula() {
    //var button = document.getElementById("startButton");
    var accept = document.getElementById("accept");
	//var adult_service_answer1 = $('service_adult_service_true');
	//var adult_service_answer2 = $('service_adult_service_false');
    //if (accept.checked && (adult_service_answer1.checked || adult_service_answer2.checked)) {
    if (accept.checked) {
      Element.show('startButton');
      Element.hide('startButtonGray');
    } else {
      Element.show('startButtonGray');
      Element.hide('startButton')
    }
}

function show_service_eula() {
    var eula = $('eulaText');
    if (eula.visible()) {
      eula.visualEffect('BlindUp');
    } else {
      eula.visualEffect('BlindDown');
    }
}


//for lost passwords
function new_user_lostpass_fn() { // new user step 2
    var button = document.getElementById("lostPassButton");
    var email = document.getElementById("cemail");
    var ccode = document.getElementById("ccode");
    var message = document.getElementById("signup2_mess");
	
    if (email.value != "" && ccode.value != "") {
        button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.lostpass_form.submit();
        }
    } else {
        button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
    }
}

// submit with validation
function submit_with_validation() {
  var prevalidate = new Validation('create_form',{onSubmit:false,focusOnError:false});
  if(prevalidate.validate()) {document.create_form.submit();}
}

// second keywords should be always UpperCase
var last="";
function keyword_toUpperCase() {
  var second_keyword = $('service[second_keyword]');
  if(second_keyword.value != last) {
    last = second_keyword.value;
    var upper_second_keyword = second_keyword.value.toUpperCase();

    second_keyword.value = upper_second_keyword;
    $('serviceSecondKeyword').update(upper_second_keyword);
  }
  var advice_short = $('advice-short-service[second_keyword]')
  if(second_keyword.value.length > 2 || second_keyword.value.length == 0) {
    if(Element.visible(advice_short)) {
      Effect.Fade(advice_short,{
        beforeStart:function (obj) { clearInterval(second_keyword_timer); },
        afterFinish:function (obj) { second_keyword_timer = setInterval('keyword_toUpperCase()',10); }
      });
    }
  } else { 
    if(! Element.visible(advice_short)) {
      Effect.Appear(advice_short,{
         beforeStart:function (obj) { clearInterval(second_keyword_timer); },
        afterFinish:function (obj) { second_keyword_timer = setInterval('keyword_toUpperCase()',10); }
     });
    }
  }
}

// for first step of registration (checks if mobile number has been entered)
function new_user_step1_fn() {
    var button = document.getElementById("nextBut1");
    var mobile_nr = document.getElementById("mobile_nr");
	var country_id = document.getElementById("country_id");
	
    if (mobile_nr.value != "") {
        button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.user_create_form.submit();
        }
    } else {
        button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
    }
}


// for new user registration step 3 (checks if password is entered and activates the button)
function new_user_step3_fn() {
    var button = document.getElementById("nextBut3");
    var cpass = document.getElementById("cpass");
	
    if (cpass.value != "") {
        button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.signup_confirmation.submit();
        }
    } else {
        button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
    }
}

function userprofile_togglepasswords() {
	if( $('passwords1').visible() ) {
		$('pass1').value = "";
		$('pass2').value = "";
		Element.hide('passwords1');
		Element.hide('passwords2');
	} else {
		Element.show('passwords1');
		Element.show('passwords2');
	}
}

function new_user_step4_fn() {
	Validation.add('password-validation', 'The password must be at least 4 and at most 40 characters', {
		minLength : 4,
		maxLength : 40
	});
	Validation.add('confirmation-password-validation', 'The confirmation password must match the first one', {
		equalToField : 'pass1'
	})
	
	var prevalidate = new Validation('update_user',{onSubmit:false,focusOnError:false});
	if(prevalidate.validate()) {document.update_user.submit();}
}

// for payout step 1 (sets submit action according to the radiobutton selected)
function payout1_enabler(type) {
	var button = document.getElementById("payout1_next");
	var person_div = document.getElementById("payout1_next");
	var company_div = document.getElementById("payout1_next");
	
	button.className = "btn-orange";
	button.style.cursor = "pointer";
	button.onclick = function (e) {
		document.service.submit();
	}
	if (type == "person") {
		document.service.action = "45_payout2_person.htm";
	} else {
		document.service.action = "45_payout2_company.htm";
	}
}

// for payout step 3 (checks if bank info is filled out)
function payout3_enabler() {
	var form = document.getElementById("service");
	var button = document.getElementById("payout3_next");
	
	if(isFilled(form.bname) && isFilled(form.acc_owner) && isFilled(form.account_nr) && isFilled(form.iban) && isFilled(form.swift)) {
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.service.submit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

function payout5_agree() {
	var button = document.getElementById("payout5_confirm");
	var agreeTerms = document.getElementById("agreeTerms");
	
	if (agreeTerms.checked) {
        button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.service.submit();
        }
    } else {
        button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
    }
}

function show_payout_account_holder_errors(visible) {
  if (visible) {
    $('advice-invalid-accountholder').show();
    $('advice-latin-letters').show();
    $('accountholder').addClassName('validation-failed');
    $('select_transfer_type').childElements().invoke('observe', 'change', function(el) {
      show_payout_account_holder_errors(false);
    });
  } else {
    $('advice-invalid-accountholder').hide();
    $('advice-latin-letters').hide();
    $('accountholder').removeClassName('validation-failed');  
  }
}

// for SMS-Sender in the my services view
function smsChecker(max) {
	var button = document.getElementById("sms_send");
	var sms_to = document.getElementById("sms_to");
	var sms_text = document.getElementById("sms_text");
	var letters = document.getElementById("letters");
	
	sms_text.value = sms_text.value.slice(0, max);
  	letters.innerHTML = max - sms_text.value.length;
	
	if(isFilled(sms_text) && isFilled(sms_to)){
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
			$('senderForm').onsubmit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

// sel => select menu , unselected_marker => value of unselected mode
// checks if some value is selected
function isSelected(sel, unselected_marker) {
   if (sel.value==unselected_marker) {
      return false;
   }
   else { return true; }
}

// checks if text field is not empty
function isFilled(aTextField) {
   if ((aTextField.value.length==0) || (aTextField.value==null)) {
      return false;
   }
   else { return true; }
}

function radioSelected(radiobtn) { // not sure if needed
	for (i=0; i<radiobtn.length; i++) {
		if(radiobtn[i].checked)
			return true;
	}
	return false;
}

// requires mouse.js
function feedbackChecker() {
	var button = $('feedback_send');
	var feedback_text = $('feedback_text');
	var feedback_email = $('feedback_email');
	
	if(isFilled(feedback_text) && isFilled(feedback_email)){
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            //document.feedbackForm.submit();
			//popCloseTimer(1);
			$('feedbackForm').onsubmit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

function signupChecker() {
	var button = document.getElementById("signup_send");
	var signup_text = document.getElementById("signup_text");
	var signup_email = document.getElementById("signup_email");

	if(isFilled(signup_text) && isFilled(signup_email)){
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            //document.feedbackForm.submit();
			//popCloseTimer(1);
                        $('signupForm').onsubmit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

function ending_service(service) {
	var given_time = document.getElementById("given_time_block");
	var now = document.getElementById("now_block");
	
	switch(service) {
		case "given_time":
		  given_time.style.display = "block";
		  now.style.display = "none";
		  break    
		case "now":
		  given_time.style.display = "none";
		  now.style.display = "block";
		  break
		default:	//not now
		  given_time.style.display = "none";
		  now.style.display = "none";
	}
}

function edit_service_replymessage(maxcount, elemId) {
	var textbox = document.getElementById(elemId);
	var textcounter = document.getElementById("textcounter");
	var button = document.getElementById("nextButton");
	
	textbox.value = textbox.value.slice(0, maxcount);
  	textcounter.innerHTML = textbox.value.length;
	
	if(isFilled(textbox)){
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.edit_form.submit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

function ending_service(service) {
	var given_time = document.getElementById("given_time_block");
	var now = document.getElementById("now_block");
	
	switch(service) {
		case "service_end_date_2":
		  given_time.style.display = "block";
		  now.style.display = "none";
		  break    
		case "service_end_date_3":
		  given_time.style.display = "none";
		  now.style.display = "block";
		  break
		default:	//not now
		  given_time.style.display = "none";
		  now.style.display = "none";
	}
}

function open_edit_form_submit() {
  var button = document.getElementById("nextButton");

  button.className = "btn-orange";
  button.style.cursor = "pointer";
  button.onclick = function (e) {
    document.edit_form.submit();
  }
}

function edit_service_end_date(elemId) {
	var radio_button = document.getElementById(elemId);
	var button = document.getElementById("nextButton");
	
	if(radio_button.checked && radio_button.id != "service_end_date_3"){
          button.className = "btn-orange";
          button.style.cursor = "pointer";
          button.onclick = function (e) {
            document.edit_form.submit();
          }
	} else {
          button.className = "btn-gray";
          button.style.cursor = "default";
          button.onclick = null;
	}
}

function edit_service_email(elemId,email) {
	var elemValue = $(elemId).value;
	var button = $('nextButton');

	if(elemValue != email) {
		button.className = "btn-orange";
        	button.style.cursor = "pointer";
        	button.onclick = function (e) {
        	    document.edit_form.submit();
        	}
	} else {
		button.className = "btn-gray";
	        button.style.cursor = "default";
        	button.onclick = null;
	}
}

function edit_service_customscript(elemId) {
	var url = document.getElementById(elemId);
	var button = document.getElementById("nextButton");
	
	if (isFilled(url)){
		button.className = "btn-orange";
        button.style.cursor = "pointer";
        button.onclick = function (e) {
            document.edit_form.submit();
        }
	} else {
		button.className = "btn-gray";
        button.style.cursor = "default";
        button.onclick = null;
	}
}

function isMouseLeaveOrEnter(e, handler) {
	if (e.type != 'mouseout' && e.type != 'mouseover') return false;
	var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 
	while (reltg && reltg != handler) 
		reltg = reltg.parentNode;
	
	return (reltg != handler);
}

// checkbox functions

function swapCheck(id, formID, checked_img, unchecked_img) {
  var img = document.images["img" + id]
  var inpt = document.forms[formID][id]

  if (img.src.substring(img.src.lastIndexOf("/")+1)==checked_img.substring(checked_img.lastIndexOf("/")+1)) {
    img.src = unchecked_img;
    inpt.value = ""
  } else {
    img.src = checked_img;
    inpt.value = "on"
  }
}

function newCheckbox(id, formID, bDefault, text, checked_img, unchecked_img, span_class) {
  var str
  if (document.images) {
    str = '<IMG class="fix-png" style="cursor:pointer;" ONCLICK="swapCheck(\'' + id + '\',\'' + formID+'\',\'' + checked_img + '\',\'' + unchecked_img+'\'); return false" align="absmiddle" NAME="img' + id + '" SRC="' + ((bDefault) ? checked_img : unchecked_img) + '"> <span class="'+span_class+'" onMouseOver="this.className=\''+span_class+'_over\'" onMouseOut="this.className=\''+span_class+'\'" onclick="swapCheck(\'' + id + '\',\'' + formID+'\',\'' + checked_img + '\',\'' + unchecked_img+'\'); return false">' + text + '</span> ';
    // In our sample page, we set the TYPE to text to 
    // visibly demonstrate how this works.
    str += ' <img class="fix-png" src="' + checked_img + '" style="display:none" ><INPUT TYPE=HIDDEN NAME="' + id + '">';
  } else
    str = '<INPUT TYPE=checkbox NAME="' + id + '"' +  ((bDefault) ? 'checked' : '') + '>';
  document.write(str)
}

// end of checkbox functions

function edit_service_chatbox_height() {
	var button = document.getElementById("nextButton");
	
	button.className = "btn-orange";
    button.style.cursor = "pointer";
    button.onclick = function (e) {
        document.edit_form.submit();
    }
}

// user type choice on the new services page
function newServicesUserType(type, clicktimes) {
	$('selector_bottomless').hide();
	$('selector_withbottom').show();
	if(clicktimes==1) {
          $('usertype_beginner2').checked = $('usertype_beginner').checked;
          $('usertype_advanced2').checked = $('usertype_advanced').checked;
          $('usertype_plugin2').checked = $('usertype_plugin').checked;
	}
	$('to_top').show();
	
	var easy_services = $('easy_services');
	var advanced_services = $('advanced_services');
        var plugin_services = $('plugin_services');
        var to_top = $('to_top');
	
	var top_div = $('top_div');
	var bottom_div = $('bottom_div');
	
	if(type == "beginner") {
          top_div.innerHTML = easy_services.innerHTML;
	} else if (type == "advanced") {
          top_div.innerHTML = advanced_services.innerHTML;
	} else if (type == "plugin") {
          top_div.innerHTML = plugin_services.innerHTML
        }
	
	top_div.getElementsByClassName('li_subcontent').each(function(n) {
          n.style.display = '';															 
	})
	bottom_div.getElementsByClassName('li_subcontent').each(function(n) {
          n.style.display = 'none';															 
	})
}

function copy(text2copy) {
  if (window.clipboardData) {
    window.clipboardData.setData("Text",text2copy);
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}

function convert2Script(text2copy) {
  text2copy = text2copy.replace(/&lt;/g,'<');
  text2copy = text2copy.replace(/&gt;/g,'>');
  text2copy.replace(/\s+/g,' ');
  text2copy = text2copy.replace(/&amp;/g,'&');

  return text2copy;
}

// Restructure event handling settings when user clicks the first time on the textbox
function restructure_feedback_events(textarea_id, feedback_email_id) {
  var textarea = $(textarea_id);
  textarea.value = '';
  textarea.parentNode.onclick = function() {}
  textarea.onfocus = function() {}
  $(feedback_email_id).onkeyup = function() {feedbackChecker();}
  textarea.onkeyup = function() {feedbackChecker();}
}

function restructure_signup_events(textarea_id, signup_email_id) {
  var textarea = $(textarea_id);
  textarea.value = '';
  textarea.parentNode.onclick = function() {}
  textarea.onfocus = function() {}
  $(signup_email_id).onkeyup = function() {signupChecker();}
  textarea.onkeyup = function() {signupChecker();}
}

function enable_submit(btn_id, func) {
  btn = $(btn_id);
  btn.className = "btn-orange";
  btn.style.cursor = "pointer"
  btn.onclick = func;
}

function disable_submit(btn_id) {
  btn = $(btn_id);
  btn.onclick = function() {};
  btn.style.cursor = ""
  btn.className = "btn-gray";
}

function findSWF(movieName) {
    if (navigator.appName.indexOf("Microsoft")!= -1) {
      return window["ie_" + movieName];
    } else {
      return document[movieName];
    }
  }

function updateChart(url){
    var date1 = document.getElementById('daterange').value.split(' - ')[0];
    var date2 = document.getElementById('daterange').value.split(' - ')[1];
    if (date1==null || date2 ==null){
        date1 = document.getElementById('daterange').value;
        date2 = document.getElementById('daterange').value;
    }
  if (Date.parse(date1) && Date.parse(date2)){
    tmp = findSWF('chart');
    x = tmp.reload(url+'?startdate='+date1+'&enddate='+date2);
  }
}

