﻿/************ CUSTOM EVENTS ****************/

function CustomEvents(name) {
    this.Name = name;
    this.Events = [];
}

CustomEvents.prototype.RegisterEvent=function(name, func) {
    this.Events[name] = func;
}

CustomEvents.prototype.Fire=function() {
    for (var key in this.Events) {
        this.Events[key]();
    }
}

var EventHandler = {
    Events: [],
    Register: function(event, name, func) {
        if (this.Events[event]) {
            this.Events[event].RegisterEvent(name, func);
        } else {
            this.Events[event] = new CustomEvents(event);
            this.Events[event].RegisterEvent(name, func);
        }
    },
    Fire: function(event) {
        if (this.Events[event]) {
            this.Events[event].Fire();
        }
    }
}

//Dummy function to use instead of href="#"
function empty() {
}

/************ ONLOAD FUNCTIONS *************/

window.onload = function ()
{
   attachEvents();
   applyCorners();
   
   EventHandler.Fire('load');
}

function attachEvents() {
    if(document.all) {
        document.attachEvent("onkeydown", submitOnEnter);
    } else {
        document.addEventListener("keydown", submitOnEnter, true);
    }
}

/* Function to submit a specific form when enter is pressed */
function submitOnEnter(e) {
    var keycode;
    var obj;
	
	if (!e) e = window.event;
	
	if (e.target) obj = e.target;
	else if (e.srcElement) obj = e.srcElement;
	
	if (obj.nodeType == 3) // defeat Safari bug
		obj = obj.parentNode;
		
    if (window.event) keycode = window.event.keyCode; 
    else if (e) keycode = e.keyCode; 
    
    if (keycode == 13)
    {
        //Refer to the ID of the object to determine which function to submit
        
        if(obj.getAttribute("id") == "login_password") {
            LoginUser();
        }
        else if(obj.getAttribute("id") == "checkout_password") {
            LoginCheckoutUser();
        }
    }
}

function redirectToHomePage() {
    document.location.href = Translate('common.host');
}

function changeLanguage(lang) {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ChangeLanguage(lang, OnLanguageChanged);
}

function OnLanguageChanged() {
    document.location.href = document.location.href;
}

/************* COMMON ALERTS AND CONFIRMATION WINDOWS ****************/
function createHoverWindow(text, nameOfClass, type)
{

    var body = document.body;
    var hoverContainer = document.createElement("div");
    hoverContainer.className = "global_hover_container";
    hoverContainer.setAttribute("id", "global_" + type);
    
    var alert = document.createElement("div");
    alert.className = "global_popup " + nameOfClass;

    var removeLink = document.createElement("a");
    
    if(type == "alert") {
        removeLink.href = "javascript:deleteAlert();";
    } else if(type == "request") {
        removeLink.href = "javascript:deleteRequest();";
    } else if(type == "box") {
        removeLink.href = "javascript:deleteBox();";
    } else if(type == "window") {
        removeLink.href = "javascript:deleteWindow();";
    } else if(type == "error") {
        removeLink.href = "javascript:deleteError();";
    }
    
    removeLink.setAttribute("title", Translate("forms.close"));
    removeLink.innerHTML = "<span>" + Translate("forms.close") + "</span>";
    removeLink.className = "img_replace global_close_window";
    alert.setAttribute("id","current_request");
   
    var request = '<div class="global_popup_top">';
    request += '<div class="left_corner"></div>';
    request += '<div class="right_corner"></div>';
    request += '</div>';
    request += '<div class="global_popup_content">';
    request += '<div class="left_shadow">';
    request += '<div class="right_shadow">'
    request += '<div class="global_content">' + text + '<div class="clear"></div></div>';
    request += '</div>';
    request += '</div>';
    request += '<div class="clear"></div>';
    request += '</div>';
    request += '<div class="global_popup_bottom">';
    request += '<div class="right_corner"></div>'; 
    request += '<div class="left_corner"></div>';
    request += '</div>';
    request += '</div>';

    var alertText = document.createElement('div');
    alertText.innerHTML = request;
    
    alert.appendChild(alertText);
    alert.appendChild(removeLink);
    hoverContainer.appendChild(alert);
    body.insertBefore(hoverContainer, body.firstChild);
}

function createError(text) {
    createHoverWindow(text, "smaller_alert", "error");
}

function deleteError() {
    deleteObject('global_error');
}

function createAlert(text) {
    createHoverWindow(text, "smaller_alert", "alert");
    
}

function deleteAlert() {
    deleteObject('global_alert');
}

function createRequest(text) {
    createHoverWindow(text, "medium_alert", "request");
}

function deleteRequest() {
    deleteObject('global_request');
}

function createBox(text) {
    createHoverWindow(text, "bigger_alert", "box");
}

function deleteBox() {
    deleteObject('global_box');
}

function createWindow(text) {
    createHoverWindow(text, "biggest_alert", "window");
}

function deleteWindow() {
    deleteObject('global_window');
}

var updateTimer;
var updateMinTime = 1000;
var updateCanStop = false;
var updateFinished = false;

function createUpdateWindow(text) {
    updateFinished = false;
    updateCanStop = false;
    
    var body = document.body;
    var window;
    
    if(document.getElementById("current_window")) {
        window = document.getElementById("current_window");
    } else {        
        window = document.createElement("div");
        window.className = "global_update";
        window.setAttribute("id","current_window");
    }
    window.innerHTML = text + ' <img class="global_update_img" src="' + Translate("common.host") + '/img/update.gif" />';    
    body.insertBefore(window, body.firstChild);
    
    updateTimer = setTimeout("stopUpdateTimer()",updateMinTime);
}

function deleteObject(id) {
    var obj = document.getElementById(id);
    
    if(obj != null) {
        obj.parentNode.removeChild(obj);
    }
}

function ShowCreateWindow() {
    createUpdateWindow(Translate("forms.saving_changes"));
}

function ShowUpdateWindow() {
    createUpdateWindow(Translate("common.updating"));
}

function stopUpdateTimer() {
    updateCanStop = true;
    clearTimeout(updateTimer);
    
    if(updateFinished)
    {
        stopUpdateWindow();
    }
}

function stopUpdateWindow() {
    updateFinished = true;
    
    if(updateCanStop) {
        deleteObject('current_window');
    }
}

/**** LOGIN WINDOWS *****/

function createForgetPasswordWindow() {
    if(document.getElementById("object_container")) {
        deleteObject("object_container");
    }
    
    var html = '<a class="img_replace global_close_window" href="javascript:deleteObject(\'object_container\');"><span>' + Translate("forms.cancel") + '</span></a>';
    html += '<h1>' + Translate("login.forgotpassword") + '</h1><div>';
    html += '<label for="forgot_password">' + Translate("common.email") +' *</label>';
    html += '<input type="text" id="forgot_password" class="validate email" maxlength="128" /></div>';
    html += '<div class="login_buttons">';
    html += '<a class="button_green" href="javascript:doForgotPassword();"><span>' + Translate("forms.submit") + '</span></a><span class="hide"> | </span>';
    html += '<a class="button_red" href="javascript:deleteObject(\'object_container\');"><span>' + Translate("forms.cancel") + '</span></a><div class="clear"></div></div>';
    html += '<p>' + Translate("description.forgot_password") + '</p><hr class="hidden"/>';
    
    createObject(html, "forgot_password_container", "user_form");
}

function createLoginWindow() {
    var html = '<h1 class="top">' + Translate("forms.login") + '</h1>';
    html += '<div><label for="login_email">' + Translate("common.email") + ' *</label>';
    html += '<input type="text" id="login_email" size="20" class="validate email" maxlength="128" name="login_email" /></div>';
    html += '<div><label for="login_password">' + Translate("common.password") +' *</label>';
    html += '<input type="password" id="login_password" size="20" class="validate" maxlength="20" name="login_password" /></div>';
    html += '<div class="clear"></div>';
    html += '<div class="inline_label extra_login_actions">';
    html += '<div class="hide"><label for="remember_me" id="remember_me_label">' + Translate("login.rememberme") + ':</label>';
    html += '<input type="checkbox" id="remember_me" name="remember_me"/></div>';
    html += '<a href="javascript:createForgetPasswordWindow()" class="right_button">' + Translate("login.forgotpassword") + '</a><div class="clear"></div></div>';
    html += '<div class="login_buttons"><a class="button_green" href="javascript:LoginUser();"><span>' + Translate("forms.log_in") + '</span></a><span class="hide"> | </span>';
    html += '<a class="button_red" href="javascript:deleteObject(\'object_container\');"><span>' + Translate("forms.cancel") + '</span></a><div class="clear"></div></div>';
    html += '<div class="separation"></div><hr class="hide"/><h1>' + Translate("registration.registration") + '</h1><ul>';
    html += '<li><a href="' + Translate("common.host") + '/skraning/einstaklingur/">' + Translate("registration.individual") + '</a></li>';
    html += '<li><a href="' + Translate("common.host") + '/skraning/fyrirtaeki/">' + Translate("registration.company") + '</a></li></ul><hr class="hidden"/>';

    createObject(html, "login_form_container", "user_form");
}

function createObject(text, nameOfId, nameOfClass) {
    var layout;
    
    if(document.getElementById("object_container")) {
        layout = document.getElementById("object_container");
    }
    else {    
        layout = document.createElement("div");
        layout.className = "object_container";
        layout.setAttribute("id", "object_container");
    }
    
    var container = document.createElement("div");
    container.setAttribute("id",nameOfId);
    container.className = nameOfClass;
    container.innerHTML = text;    
    layout.appendChild(container);
    var body = document.body;    
    body.insertBefore(layout, body.firstChild);
}

/******** USED WHEN REGISTERING COMPANIES **********/

function generateSiteName(obj, obj2Id) {
    var key = obj.value;    
    var sitename = document.getElementById(obj2Id);
    
    var cleanKey = removeUnapprovedChars(key.toLowerCase());

    if(cleanKey.indexOf(sitename.value) > -1)
        sitename.value = cleanKey;
}

function checkInput(obj) {
    var input = obj.value;
    obj.value = removeUnapprovedChars(input.toLowerCase())
}

function removeUnapprovedChars(xStr)
{
	var a = /\á|å|ä|à|â|ã|ā|ą|ă|ǎ/gi;
	var e = /\é|è|ê|ë|ē|ĕ|ė|ę|ě/gi;
	var i = /\í/gi;
	var o = /\ó|ö/gi;
	var s = /\ß/gi;
	var u = /\ú/gi;
	var y = /\ý/gi;
	var d = /\ð/gi;
	var th = /\þ/gi;
	var ae = /\æ/gi;
	var allowed = /([^a-z0-9_-])/gi;
	
	var newString = xStr;
	
	newString = newString.replace(a,'a');
	newString = newString.replace(e,'e');
	newString = newString.replace(i,'i');
	newString = newString.replace(o,'o');
	newString = newString.replace(u,'u');
	newString = newString.replace(y,'y');
	newString = newString.replace(d,'d');
	newString = newString.replace(s,'ss');
	newString = newString.replace(th,'th');
	newString = newString.replace(ae,'ae');
	newString = newString.replace(allowed,'');

	return newString;
}

function cropText(text, length) {
    if(text.length > length) {
        return text.substring(0, length) + "..";
    }
    else 
        return text;
}

function removeQuotes(text) {
    var regex = /\"|'/gi;
    
    return text.replace(regex, "");
}

/****** COMMON FUNCTIONS TO SHOW/HIDE CONTAINERS **********/

function cancel(id) {
    hideContainer(id);
    clearForm(id)
}

function hideContainer(id) {
    var obj = document.getElementById(id);
    hideObject(obj);
}

function hideObject(obj) {  
    if(obj != null && obj != undefined) {
        if(obj.className.indexOf("hide") < 0) {
            if(obj.className.indexOf("show_inline") > -1) {
                obj.className = obj.className.replace("show_inline","hide");
            } else if(obj.className.indexOf("show_hover") > -1) {
                obj.className = obj.className.replace("show_hover","hide");
            } else if(obj.className.indexOf("show") > -1) {
                obj.className = obj.className.replace("show","hide");
            } else {
                obj.className = obj.className + " hide";
            }
        } else {
            if(obj.className.indexOf("show_inline") > -1) {
                obj.className = obj.className.replace("show_inline","");
            } else if(obj.className.indexOf("show_hover") > -1) {
                obj.className = obj.className.replace("show_hover","");
            } else if(obj.className.indexOf("show") > -1) {
                obj.className = obj.className.replace("show","");
            } 
        }
    }
}

function showContainer(id) {
    var obj = document.getElementById(id);
    showObject(obj);
}

function showObject(obj) {
    if(obj != null && obj != undefined) {
        obj.className = obj.className.replace("hide","");
        obj.className = obj.className.replace("show","");
        obj.className = obj.className.replace("show_inline","");
        obj.className = trim(obj.className) + " show";
    }
}

function showCleanContainer(id) {
    var obj = document.getElementById(id);
    showCleanObject(obj);
}

function showCleanObject(obj) {
    if(obj != null && obj != undefined) {
        obj.className = obj.className.replace("hide","");
        obj.className = obj.className.replace("show","");
        obj.className = obj.className.replace("show_inline","");
        obj.className = trim(obj.className); 
    }
}

function showInlineContainer(id) {
    var obj = document.getElementById(id);
    showInlineObject(obj);
}

function showInlineObject(obj) {
    if(obj != null && obj != undefined) {
        obj.className = obj.className.replace("hide","");
        obj.className = obj.className.replace("show","");
        obj.className = obj.className.replace("show_inline","");
        obj.className = trim(obj.className) + " show_inline";    
    }
}

//Removes leading and trailing spaces
function trim(text) {
    return text.replace(/^\s*|\s*$/g, "");
}

/** used to hide specific tags within a particular element **/
function hideDivs(obj, tag) {
    var divs = obj.getElementsByTagName(tag);
    
    for(var i = 0; i < divs.length; i++)
    {
        var currentDiv = divs[i];
        currentDiv.className = "hide";
    }
}

function hideAllButOne(containerId, nameOfClassToHide, idOfElementToShow, tag) {
    var container = document.getElementById(containerId);
    
    var objects = container.getElementsByTagName(tag);
    
    for(var i = 0; i < objects.length; i++) {
        var obj = objects[i];
        
        var objId = obj.getAttribute("id");
        var objClass = obj.className;
        
        if(objClass.indexOf(nameOfClassToHide) > -1 && objId != idOfElementToShow) {
            hideObject(obj);
        }
    }
    
    showContainer(idOfElementToShow);
}

/*********** VALIDATIONS **************/

function validateForm(formId, missingText, passwordText, incorrectText, expiredText) {

    if(!passwordText)
        passwordText = "";
        
    if(!incorrectText)
        incorrectText = "";
        
    if(!expiredText)
        expiredText = "";
        
    var form = document.getElementById(formId);
    var inputs = form.getElementsByTagName("input");
    
    var validated = true;
       
    for(var i = 0; i < inputs.length; i++)
    {
        var currInput = inputs[i];
        var parent = currInput.parentNode;
        var label;
        var missing;
        var smallText;
        
        var checkEmail = (currInput.className.indexOf("email") > -1 && !validateEmail(currInput.value));
        var checkCVC = (currInput.className.indexOf("cvc") > -1 && !validateCVCNumber(currInput.value));
        var checkCCN = (currInput.className.indexOf("ccn") > -1 && !validateCreditCardNumber(currInput.value));
        var checkCEXP = (currInput.className.indexOf("cexp") > -1 && !validateCCExpires(currInput.value,currInput.className));
        var checkSSN = (currInput.className.indexOf("ssn") > -1 && !validateSSN(currInput.value));
        var checkEmailConfirm = (currInput.className.indexOf("cmail_") > -1 && !validateEmailConfirm(currInput.value, currInput.className));
        var checkPassword = (currInput.className.indexOf("password_") > -1 && !validatePassword(currInput.value, currInput.className));
        
        //Validate mandatory fields
        if(currInput.className.indexOf("validate") > -1 || currInput.className.indexOf("required") > -1) {
            
            if(parent.getElementsByTagName("small").length > 0) {
                smallText = parent.getElementsByTagName("small")[0];
                parent.removeChild(smallText);
                currInput.className = currInput.className.replace("required","validate");
            }
                       
            if(trim(currInput.value) == "" || checkEmail || checkSSN || checkPassword || checkEmailConfirm || checkCVC || checkCCN || checkCEXP)
            {
                validated = false;
                currInput.className = currInput.className.replace("validate","required");         
                
                label = parent.getElementsByTagName("label")[0];
                
                missing = document.createElement("small");
                missing.className = "red";
                
                if(trim(currInput.value) == "") {
                    missing.innerHTML = label.innerHTML.replace(" *","") + " " + missingText;
                } else if (checkPassword || checkEmailConfirm) {
                    missing.innerHTML = passwordText;
                } else if(checkCCN || checkCVC || checkEmail || checkSSN) {
                    missing.innerHTML = label.innerHTML.replace(" *","") + " " + incorrectText;
                } else if(checkCEXP) {
                    missing.innerHTML = expiredText;
                }
                
                parent.appendChild(missing);
            }
        } //Validate optional fields if they are filled in
        else if((currInput.className.indexOf("optional") > -1 || currInput.className.indexOf("incorrect") > -1) && trim(currInput.value) != "") {
            
            if(parent.getElementsByTagName("small").length > 0) {
                smallText = parent.getElementsByTagName("small")[0];
                parent.removeChild(smallText);
                currInput.className = currInput.className.replace("incorrect","optional");
            }
            
            if(checkEmail || checkSSN || checkPassword || checkEmailConfirm || checkCVC || checkCCN || checkCEXP)
            {
                validated = false;
                currInput.className = currInput.className.replace("optional","incorrect");         
                
                label = parent.getElementsByTagName("label")[0];
                
                missing = document.createElement("small");
                missing.className = "red";
                
                if(incorrectText == "")
                    incorrectText = missingText;

                if(checkSSN || checkCCN || checkCVC) {
                    missing.innerHTML = label.innerHTML.replace(" *","") + " " + incorrectText;
                } else if(checkCEXP) {
                    missing.innerHTML = expiredText;
                } else {
                    missing.innerHTML = label.innerHTML.replace(" *","") + " " + missingText;
                }
                
                parent.appendChild(missing);   
            }
        }
        else {
            if(parent.getElementsByTagName("small").length > 0) {                
                smallText = parent.getElementsByTagName("small")[0];
                
                if(parent!= null && smallText != null) {
                    parent.removeChild(smallText);
                }
            }
        }
    }
    
    return validated;
}

function validatePassword(value, compareValueObj) {
    var tmp1 = compareValueObj.replace("validate ","");
    var tmp2 = tmp1.replace("required ","");
    var compareValue = document.getElementById(tmp2.replace("password_","")).value;
    
    if(value != compareValue)
        return false;
    else
        return true;
}

function validateSSN(src)
{
    var regex = /[0-9]/g;
    
    if(src.length != 10) {
        return false;
    } else {
        if(regex.test(src))
        {
            return true;
        }
        else {
            return false;
        }
    }
}

function validateEmail(src)
{
    var regex=/([a-zA-Z0-9_-])+(\.{0,1})+([a-zA-Z0-9_-])+([\.][a-zA-Z0-9_-]+){0,1}@{1}([a-zA-Z0-9_-])+(\.{1})+([a-zA-Z0-9]{0,4})+(\.{0,1})+[a-zA-Z]{2,4}$/;

    if(regex.test(src)) {
         return true;
    } else {
        return false;
    }
}

function validateEmailConfirm(value, compareValueObj) {
    var tmp1 = compareValueObj.replace("validate ","");
    var tmp2 = tmp1.replace("required ","");
    var compareValue = document.getElementById(tmp2.replace("cmail_","")).value;
    
    if(value != compareValue)
        return false;
    else
        return true;
}

function validateNumber(obj) {
    var allowed = /[^0-9]/g;
    
    var value = obj.value;
    
    obj.value = value.replace(allowed,'');
}

function validateCreditCardNumber(CCN)
{
    var Valid_Numbers = "0123456789";
    var CreditCard_Numbers = "";
    
    for (var i=0; i < CCN.length; i++)
    {
        Temp = CCN.charAt(i);
        if (Valid_Numbers.indexOf(Temp,0) != -1) { CreditCard_Numbers += Temp; }
    }
    
    var Sum_CreditCard = CreditCard_Numbers.length / 2;
    
    if (Sum_CreditCard < 6.5 || Sum_CreditCard > 8 || Sum_CreditCard == 7)
        return false;
    
    var CreditCard_Even = Math.floor(Sum_CreditCard);
    var CreditCard_Odd = Math.ceil(Sum_CreditCard) - CreditCard_Even;
    var Temp2 = 0;

    for (var i=0; i<CreditCard_Even; i++)
    {
        a = CreditCard_Numbers.charAt(i*2+CreditCard_Odd) * 2;
        Temp2 += a > 9 ? Math.floor(a/10 + a%10) : a;
    }

    for (var i=0; i<CreditCard_Even+CreditCard_Odd; i++) {
        Temp2 += CreditCard_Numbers.charAt(i*2+1-CreditCard_Odd) * 1;
    }

    return (Temp2%10 == 0);
    return false;
}

function validateCVCNumber(src) {
    var cv=/^\d{3}$/;
    
    if (src.length > 3)
    {
        return false;
    }    
    else if (src.length < 3)
    {
        return false;
    }
    else if (src.search(cv)==-1)
    {
        return false;
    }
    else {
        return true;
    }
}

//Checks if the credit card has expired or not
function validateCCExpires(month, yearObj) {
    var yearId = yearObj.replace("validate ","").replace("required ","").replace("cexp_","");
    var year = document.getElementById(yearId).value;

    var today = new Date();
    var currentMonth = (today.getMonth() + 1);
    var currentYear = today.getFullYear();
    
    if(month.substring(0,1) == 0) {
        month = month.substring(1,2);
    }
    
    if(currentYear < year) {
        return true;
    } else if (currentYear == year && currentMonth <= month) {
        return true;
    }
    else {
        return false;
    }
}


/* Only Icelandic companies are required to enter in SSN - this function changes the SSN input 
from optional to mandatory and vice versa depending on the selected value */
function checkCountry(obj, fieldToChangeId, nameOfClass) {
    var defaultCountryValue = Translate("default.country");
    
    if(defaultCountryValue.toLowerCase() != 'is') {
        defaultCountryValue = 'IS';
    }
    
    if(obj.options[obj.selectedIndex].value != defaultCountryValue) {
        makeOptional(fieldToChangeId);
    } else {
        makeMandatory(fieldToChangeId, nameOfClass);
    }
}

//Converts an optional field to a mandatory field
function makeMandatory(fieldToChangeId, nameOfClass) {
    var fieldToChange = document.getElementById(fieldToChangeId);
    fieldToChange.className = nameOfClass;
    
    var label = fieldToChange.parentNode.getElementsByTagName("label")[0];
    
    if(label != null) {        
        if(label.innerHTML.indexOf("*") < 0) {
            label.innerHTML = label.innerHTML + " *";
        }
    }
}

//Converts a mandatory field to an optional field
function makeOptional(fieldToChangeId) {
    var fieldToChange = document.getElementById(fieldToChangeId);
    var parent = fieldToChange.parentNode;
    
    fieldToChange.className = "";
    var label = parent.getElementsByTagName("label")[0];
    
    if(label != null) {        
        label.innerHTML = label.innerHTML.replace(" *","");
    }
    
    if(parent.getElementsByTagName("small").length > 0) {
        var smallText = parent.getElementsByTagName("small")[0];
        parent.removeChild(smallText);
    }
}

//Limit the number of characters in a text area 
function limitCharacters(obj,limit) {
    var text = obj.value;
    
    if(text.length > limit) {
        obj.value = text.substring(0,limit);
    }
}

//Clear a form on cancel
function clearForm(form) {
    var formContainer = document.getElementById(form);
    var formValues = formContainer.getElementsByTagName("input");
        
    for(var i = 0; i < formValues.length; i++) {
        var input = formValues[i];
        
        if(input.type == "text" || input.type == "hidden" || input.type == "password") {
            input.value = "";
        } else if(input.type == "checkbox") {
            input.checked = false;
        }
    }
}

function maskCCNumber(src) {
    var number = src;
    
    return "**** **** **** " + number.substring(number.length-4, number.length);
}

function copyValue(from, to) {
    document.getElementById(to).value = from.value;
}

/************* CAPTCHA IMAGE VERIFICATION *******************/

function LoadCaptcha() {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCaptcha(OnSuccessCaptcha);
}

function OnSuccessCaptcha(results) {
    var s1 = results[0];
    var s2 = results[1];
    
    document.getElementById("captchaimg").src = '../../Controls/CaptchaImage.aspx?text=' + s1;
    document.getElementById("captchahash").value = s2;
}


/**************** ENABLE / DISABLE ROWS ********************/

function enableRow(row) {
    if(document.all) {        
        var childNodes = row.getElementsByTagName("td");
        
        for(var i = 0; i < childNodes.length; i++) {
            childNodes[i].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
        }
    } else {
        row.style.opacity = "1";
    }
}

function disableRow(row) {    
    if(document.all) {        
        var childNodes = row.getElementsByTagName("td");
        
        for(var i = 0; i < childNodes.length; i++) {
            childNodes[i].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=40)";
        }
    } else {
        row.style.opacity = "0.4";
    }
}


/********** LOGIN/LOGOUT *****************/

function LoginUser() {
    if(validateForm("login_form_container",Translate("common.missing"), "", Translate("common.incorrect"))) {
        var email = $get("login_email").value;
        var password = $get("login_password").value;
        var rememberMe = $get("remember_me");
        
        createUpdateWindow(Translate("update.loggingin"));    
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.Login(email, password, rememberMe.checked, OnLoginSuccess, OnLoginError); 
    }    
}

function LoginCheckoutUser() {
    if(validateForm("step_login",Translate("common.missing"), "", Translate("common.incorrect"))) {
        var email = $get("checkout_email").value;
        var password = $get("checkout_password").value;
        var rememberMe = $get("checkout_remember_me");
        
        createUpdateWindow(Translate("update.loggingin"));    
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.Login(email, password, rememberMe.checked, OnCheckoutLoginSuccess, OnLoginError); 
    }
}

function OnLoginError(error) {
    createError(error.get_message());
    stopUpdateWindow();
}

function OnLoginSuccess(results) 
{
    stopUpdateWindow();
    
    if (results == null) {
        createError(Translate("login.failed"));
    }
    else
    {
        deleteObject('object_container');
        swapRegistrationContent(results.Fullname, results.CompanyId);
        
        //Check if user settings are available and update them
        var settingsContainer = document.getElementById("user_settings_container");
        
        if(settingsContainer != null) {
            retrieveSettings();
        }
        
        //Check if the user has active invites to other companies
        getInvitedCompanies(results.Id, results.CompanyId);
        
        EventHandler.Fire('login');

	UpdateProductView();

	retrieveSettings();

	ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.RefreshBasket(OnBasketRefreshed);
    }
}

function OnBasketRefreshed(results) {
    if(results) {
        UpdateSmallBasket(results);
    }
}

function OnCheckoutLoginSuccess(results) 
{
    stopUpdateWindow();
    
    if (results == null) {
        createAlert(Translate("login.failed"));
    }
    else
    {
        swapRegistrationContent(results.Fullname, results.CompanyId);

        //Check if the user has active invites to other companies
        getInvitedCompanies(results.Id, results.CompanyId);
        
        EventHandler.Fire('login');
    }
}

function OnGetCheckoutCompany(results) {
    autoFillCompany(results);
}

function swapRegistrationContent(name, companyId) {    
    var loggedInContainer = document.getElementById("logged_in_container");
    
    var html = '<span id="logged_in_user" class="logged_in">' + name + '</span>' + ' <span id="logged_in_company" class="logged_in company_name"></span>';
    html += '<div class="heading"><a href="javascript:Logout();">' + Translate("common.logout") + '</a></div>';
    loggedInContainer.innerHTML = html;
    
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCompanyById(companyId, OnShowCompanyName);
}

function OnShowCompanyName(results) {
    if(results != null) {
        $get("logged_in_company").innerHTML = results.Name;
    }
}

function Logout() {
    createUpdateWindow(Translate("update.loggingout"));
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.Logout(OnLogoutSuccess, OnLogoutError);
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ResetSession();         
}

function OnLogoutError(error) {
    createError(error.get_message());
    stopUpdateWindow();
}

function OnLogoutSuccess(results) {
    document.location.href = results;
    stopUpdateWindow();
}

function getInvitedCompanies(userId, companyId) {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCompaniesForInvitedUser(userId, companyId, OnGetCompaniesForInvitedUserSuccess);
}

function OnGetCompaniesForInvitedUserSuccess(results) {
    if(results.length > 0) {
        var html = '<h2>' + Translate("forms.selectinvitedcompany") + '</h2>';
        html += '<select id="shop_for_company">'
        
        for(var i = 0; i < results.length; i++) {
            html += '<option value="' + results[i].EntryId + '">' + results[i].Name + '</option>';
        }
        
        html += '</select><br /><br />';
        html += '<a onclick="chooseInvitedCompany()" class="button_orange"><span>' + Translate("forms.confirm") + '</span></a>';
        
        createAlert(html);
    } else {
        if($get("checkout_container") != null) {
           document.location.href = document.location.href + "?step=2";
        }
    }
}

function chooseInvitedCompany() {
    var companyMenu = $get("shop_for_company");
    var companyId = companyMenu.value;
    
    $get("logged_in_company").innerHTML = companyMenu.options[companyMenu.selectedIndex].text;
    
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.SaveInvitedCompany(companyId, OnInvitedCompanySelected, OnInvitedCompanyError);
}

function OnInvitedCompanySelected() {
    deleteAlert();
    
    if($get("checkout_container") != null) {
        document.location.href = document.location.href + "?step=2";
    }
}

function OnInvitedCompanyError(error) {
    createError(error.get_message());
}

/****
The full name of the user that is logged in is always displayed
in the header of the site inside a span element with the id: logged_in_user

This function changes the name in the header if/when
the user changes his name while logged in
****/

function updateLoggedInUser(newName) {
    var loggedInUserContainer = document.getElementById("logged_in_user");
    
    loggedInUserContainer.innerHTML = newName;
}

function forgotPassword() {
    hideContainer("login_form_container");
    showHoverContainer("forgot_password_container");
}

function doForgotPassword() {
    if(validateForm("forgot_password_container",Translate("common.missing"), "", Translate("common.incorrect"))) {
        var email = $get("forgot_password").value;
        
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DoForgotPassword(email, OnForgotPassword);
    }
}

function OnForgotPassword(results) {
    if(!results) {
        createError(Translate("error.email_not_found"));
    } else {
        hideContainer("forgot_password_container");
        createAlert(Translate("description.reset_password"));
    }
}


/***** DROPDOWN MENUS / AUTOMATIC FILL *****/

var temporaryCountryDropDownMenu;
var temporaryGroupDropDownMenu;
var temporaryAddressDropDownMenu;
var temporaryCostCenterDropDownMenu;

var temporaryAddressPrefix;
var temporaryCostCenterPrefix;

var temporaryDefaultCountry;
var temporaryDefaultGroup;

var temporaryEmptyGroups;

/* country dropdown */

function fillCountryDropDown(selectMenu, defaultCountry) {  
    temporaryCountryDropDownMenu = selectMenu;
    
    if(defaultCountry != null) {
        temporaryDefaultCountry = defaultCountry;
    } else {
        defaultCountry = Translate("default.country");
    }

    if(selectMenu.className.indexOf("full") < 0) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCountries(OnGetCountries);
    } else {
        for(var i = 0; i < selectMenu.options.length; i++) {
            if(selectMenu.options[i].value.toLowerCase() == defaultCountry.toLowerCase())
            {
                selectMenu.selectedIndex = i;
            }
        }
    }
}

function OnGetCountries(results) {
    var selectMenu = temporaryCountryDropDownMenu;
    var defaultCountry = temporaryDefaultCountry;
    
    if(defaultCountry == null || defaultCountry == "") {
        defaultCountry = Translate("default.country");
    }
    
    //reset temporary variable
    temporaryCountryDropDownMenu = null;
    temporaryDefaultCountry = null;
    
    if(selectMenu.className != "" && selectMenu.className != "empty") {
        selectMenu.className = selectMenu.className + " full";
    } else {
        selectMenu.className = "full";
    }
    
    if(results.length > 0) {
        selectMenu.innerHTML = "";
               
        for(var i = 0; i < results.length; i++)
        {
            var option = document.createElement("option");
            
            var value = results[i].ISO;
            var iso = results[i].ISO.toLowerCase();
            var name = results[i].Name;
            
            option.setAttribute("value",value);
            
            if(defaultCountry != null && iso == defaultCountry.toLowerCase()) {
                option.setAttribute("selected","selected");
            }
                        
            option.innerHTML = name;            
            selectMenu.appendChild(option);
        }
    }    
}

/* group dropdown */

//Gets subgroups for a particular parent group
function fillGroupDropDown(selectMenu, parentId, defaultGroup, emptyGroups) {
    temporaryGroupDropDownMenu = selectMenu;
    temporaryEmptyGroups = emptyGroups;
    
    if(defaultGroup != null) {
        temporaryDefaultGroup = defaultGroup;
    }
     
    if(selectMenu.className.indexOf("full") < 0) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetGroups(parentId, OnGetGroups);
    } else if (defaultGroup < 1) {
        selectMenu.selectedIndex = 0;
    } else {
        for(var i = 0; i < selectMenu.options.length; i++) {
            if(selectMenu.options[i].value == defaultGroup)
            {
                selectMenu.selectedIndex = i;
            }
        }
    }
}

//Gets all groups for a particular company
function fillGroupDropDownByCompany(selectMenu, companyId, defaultGroup, emptyGroups) {
    temporaryGroupDropDownMenu = selectMenu;
    temporaryEmptyGroups = emptyGroups;
    
    if(defaultGroup != null) {
        temporaryDefaultGroup = defaultGroup;
    }
     
    if(selectMenu.className.indexOf("full") < 0) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetGroupsByCompany(companyId, OnGetGroups);
    } else if (defaultGroup < 1) {
        selectMenu.selectedIndex = 0;
    } else {
        for(var i = 0; i < selectMenu.options.length; i++) {
            if(selectMenu.options[i].value == defaultGroup)
            {
                selectMenu.selectedIndex = i;
            }
        }
    }
}

function OnGetGroups(results) {    
    var selectMenu = temporaryGroupDropDownMenu;
    var defaultGroup = temporaryDefaultGroup;
    var emptyGroups = temporaryEmptyGroups;   
    
    if(emptyGroups == null) {
        emptyGroups = true;
    }
    
    //reset temporary variables
    temporaryGroupDropDownMenu = null;
    temporaryDefaultGroup = null;
    
    selectMenu.className = "full";
    
    if(results.length > 0) {
        if(emptyGroups) {
            selectMenu.innerHTML = "";
        }
        
        for(var i = 0; i < results.length; i++)
        {
            var group = results[i];
            var option = document.createElement("option");
            option.setAttribute("value",group.Id);
            
            if(defaultGroup != null && group.Id == defaultGroup) {
                option.setAttribute("selected","selected");
            }
            
            var text = document.createTextNode(group.Name);
            option.appendChild(text);
            selectMenu.appendChild(option);
        }
    }
}

/* address dropdown */

function fillAddressDropDown(selectMenu, id, isCompany) {  
    temporaryAddressDropDownMenu = selectMenu;
    
    if(isCompany == null) {
        isCompany = false;
    }
    
    if(selectMenu.className.indexOf("full") < 0) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetAddresses(id, isCompany, OnGetAddresses, OnGetAddressesError, selectMenu);
    }
}

function OnGetAddresses(results, context) {
    var selectMenu = temporaryAddressDropDownMenu;

    if(context != null) {
	selectMenu = context;
    }    

    //reset temporary variables
    temporaryAddressDropDownMenu = null;
    
    selectMenu.className = "full";
    var defaultOption;
    
    if(results.length > 0) {        
        defaultOption = document.createElement("option");
        defaultOption.setAttribute("value","");
        defaultOption.setAttribute("selected","selected");
        defaultOption.innerHTML = Translate("forms.select");
        selectMenu.appendChild(defaultOption);        
        
        for(var i = 0; i < results.length; i++)
        {
            var address = results[i];
            var option = document.createElement("option");
            option.setAttribute("value",address.EntryId);
            option.innerHTML = address.Address1;
            selectMenu.appendChild(option);
        }
    } else {
        defaultOption = document.createElement("option");
        defaultOption.setAttribute("value","");
        defaultOption.setAttribute("selected","selected");
        defaultOption.innerHTML = Translate("forms.select");
        selectMenu.appendChild(defaultOption);    
    }
}

function OnGetAddressesError(result) {
}

/* address selection from dropdown */

function fillAddress(obj, prefix) {
    temporaryAddressPrefix = prefix;
    var addressId = obj.options[obj.selectedIndex].value;
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetAddress(addressId, OnGetAddress);
    
}

function OnGetAddress(results) {
    if(results != null) {
        var prefix = temporaryAddressPrefix;
        temporaryAddressPrefix = null;
        
        //var id = document.getElementById(prefix + "_addressid_input");        
        //if(id) id.value = results.Id;
        
        //var guid = document.getElementById(prefix + "_guid_input");        
        //if(guid) guid.value = results.EntryId;
        
        var address = document.getElementById(prefix + "_address1_input");        
        if(address) {
            if(address.tagName == "INPUT") address.value = results.Address1;
            else address.innerHTML = results.Address1;
        }
            
        var address1 = document.getElementById(prefix + "_address2_input");        
        if(address1) {
            if(address1.tagName == "INPUT") address1.value = results.Address2;
            else address1.innerHTML = results.Address2;
        }
            
        var postcode = document.getElementById(prefix + "_postcode_input");        
        if(postcode) {
            if(postcode.tagName == "INPUT") postcode.value = results.PostalCode;
            else postcode.innerHTML = results.PostalCode;
        }
            
        var postbox = document.getElementById(prefix + "_postbox_input");
        if(postbox) {
            if(postbox.tagName == "INPUT") postbox.value = results.PostBox;
            else postbox.innerHTML = results.PostBox;
        }
        
        var place = document.getElementById(prefix + "_place_input");
        if(place) {
            if(place.tagName == "INPUT") place.value = results.Place;
            else place.innerHTML = results.Place;
        }
        
        var country = document.getElementById(prefix + "_country_label");
        if(country) {
            country.innerHTML = CountryFullName(results.Country);
        } else {
	    country = document.getElementById(prefix + "_country_input"); 
	    if(country) {
            	country.value = results.Country;
            }
	}       
    }
}

/* costcenter dropdown */

function fillCostCenterDropDown(selectMenu, id) {  
    temporaryCostCenterDropDownMenu = selectMenu;
    
    if(selectMenu.className.indexOf("full") < 0) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCostCenters(id, OnGetCostCenters);
    }
}

function OnGetCostCenters(results) {
    var selectMenu = temporaryCostCenterDropDownMenu;
    
    //reset temporary variables
    temporaryCostCenterDropDownMenu = null;
    
    selectMenu.className = "full";
    var defaultOption;
    
    if(results.length > 0) {        
        defaultOption = document.createElement("option");
        defaultOption.setAttribute("value","");
        defaultOption.setAttribute("selected","selected");
        defaultOption.innerHTML = Translate("forms.select");
        selectMenu.appendChild(defaultOption);        
        
        for(var i = 0; i < results.length; i++)
        {
            var center = results[i];
            var option = document.createElement("option");
            option.setAttribute("value",center.EntryId);
            option.innerHTML = center.Name;
            selectMenu.appendChild(option);
        }
    } else {
        defaultOption = document.createElement("option");
        defaultOption.setAttribute("value","");
        defaultOption.setAttribute("selected","selected");
        defaultOption.innerHTML = Translate("forms.select");
        selectMenu.appendChild(defaultOption);    
    }
}

/* costcenter selection from dropdown */

function fillCostCenter(obj, prefix) {
    temporaryCostCenterPrefix = prefix;
    
    var centerId = obj.options[obj.selectedIndex].value;
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCostCenter(centerId, OnGetCostCenter);    
}

function OnGetCostCenter(results) {
    if(results != null) {
        var prefix = temporaryCostCenterPrefix;
        temporaryCostCenterPrefix = null;
        
        var id = document.getElementById(prefix + "_id_input");        
        if(id) id.value = results.Id;
        
        var guid = document.getElementById(prefix + "_guid_input");        
        if(guid) guid.value = results.EntryId;
        
        var name = document.getElementById(prefix + "_name_input");        
        if(name) name.innerHTML = results.Name;
            
        var identification = document.getElementById(prefix + "_identification_input");        
        if(identification) identification.innerHTML = results.Identification;
            
        var erp = document.getElementById(prefix + "_erp_input");        
        if(erp) erp.innerHTML = results.ERP;       
    }
}



function fillValue(id, type, objId) {
    if(type == "company") {
        if(objId == "employee_company_input") {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCompanyById(id, OnGetCompanyForUserInformation);
        }
    } else if (type == "group") {
        if(objId == "employee_group_input") {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetGroupById(id, OnGetGroupForUserInformation);
        }
    }
}

function OnGetCompanyForUserInformation(results) {
    if(results != null) {
        $get("employee_company_input").value = results.Name;
    }
}

function OnGetGroupForUserInformation(results) {
    if(results != null) {
        $get("employee_group_input").value = results.Name;
    }
}

/***** ICON CLASS FUNCTIONS ******/

function closeHeaderIcon(headerId) {
    var header = document.getElementById(headerId);
    header.className = "group_icon closed_group";
}

function resetIcon(iconId, iconClass) {
    var icon = document.getElementById(iconId);
    icon.className = iconClass;
}

function toggleHeaderIcon(headerId) {
    var header = document.getElementById(headerId);
    
    if(header.className.indexOf("open") > -1) {
        header.className = "group_icon closed_group";
    } else {
        header.className = "group_icon open_group";
    }
}

function toggleHeaderIcons(containerId, selHeaderId) {
    var container = document.getElementById(containerId);
    var headers = container.getElementsByTagName("h3");
   
    for(var i = 0; i < headers.length; i++) {
        var header = headers[i];
        var headerId = header.getAttribute("id");
        
        if(headerId == selHeaderId) {
            header.className = "group_icon open_group";
        } else {
            header.className = "group_icon closed_group";
        }
    }
}

function toggleExtraIcons(selIconId, iconName, iconOnClass, iconOffClass) {
    var icons = document.getElementsByName(iconName);

    for(var i = 0; i < icons.length; i++) {
        var icon = icons[i];
        var iconId = icon.getAttribute("id");
        
        if(iconId == selIconId) {
            icon.className = iconOnClass;
        } else {
            icon.className = iconOffClass;
        }
    }
}

/***** CREATE COMMON OBJECTS ******/

function createCloseButton(containerToClose) {
    var closeButtonContainer = document.createElement("div");
    
    var closeLink = document.createElement("a");
    closeLink.setAttribute("href","javascript:hideContainer('" + containerToClose + "')");
    closeLink.className = "img_replace global_close_window";
    closeLink.innerHTML = "<span>" + Translate("forms.close") + "</span>";
    
    closeButtonContainer.appendChild(closeLink);
    
    return closeButtonContainer;
}

function createRemoveButton(containerToClose) {
    var closeButtonContainer = document.createElement("div");
    
    var closeLink = document.createElement("a");
    closeLink.setAttribute("href","javascript:deleteObject('" + containerToClose + "')");
    closeLink.className = "img_replace global_close_window";
    closeLink.innerHTML = "<span>" + Translate("forms.close") + "</span>";
    
    closeButtonContainer.appendChild(closeLink);
    
    return closeButtonContainer;
}

function Help() {
    var html = "<h2>" + Translate("common.help") + "</h2><p>" + Translate("usersettings.helptext") + "</p>";
    createAlert(html);
}

/***** FANCY STUFF *****/

function transition(from, to) {
    var timer = 0;
    var speed = 5;
    
    __setOpacity(0, to);
    showContainer(to);
    
    for(i = 0; i <= 100; i++) {
        setTimeout("__setOpacity(" + (100-i) + ",'" + from + "')",(timer * speed));
        setTimeout("__setOpacity(" + i + ",'" + to + "')",(timer * speed));
        timer++;
    }

    hideContainer(from);
}

function __setOpacity(value, objId) {
    var obj = document.getElementById(objId);
    
    if(document.all) {
        obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + value + ")";
    } else {
        if(value == 100) {
            value = 99.99;
        }
        obj.style.opacity = (value / 100);
    }    
}

/*** products ****/

function showTab(showContent , hideContent)
{
    var showLegend = document.getElementById(showContent + "_tab");
    var hideLegend = document.getElementById(hideContent + "_tab");
    var showText = document.getElementById(showContent + "_content");
    var hideText = document.getElementById(hideContent + "_content");
    
    showLegend.className = "selected";
    showObject(showText);
    
    hideLegend.className = "new img_position";
    hideObject(hideText);        
}

/* These functions are used to create dynamic forms */

function generateCommonLabel(forAttr, heading, mandatory) {
    if(mandatory == null) mandatory = "";
    
    var label = document.createElement("label");
    label.setAttribute("for",forAttr);
    label.innerHTML = heading + mandatory;
    
    return label;
}

function generateCommonElement(tag, nameOfClass, id, prefix, type, val, maxlength) {
    var element = document.createElement(tag);
    
    if(prefix == null) prefix = "";
    if(type != null && type != "") element.setAttribute("type",type);    
    if(id != null && id != "") element.setAttribute("id",prefix + "_" + id);
    if(val != null) element.value = val;
    if(maxlength != null && maxlength.length > 0) element.maxLength = maxlength;
    if(nameOfClass != null && nameOfClass != "") element.className = nameOfClass;
    
    return element;
}

/***** ADMIN SETTINGS *****/

function createBetaLoginWindow() {
   /* hideContainer("top_container");
    hideContainer("content_container");
    hideContainer("add_area");
    
    var html = '<div><img src="' + Translate("common.host") + '/img/layout/vorusja_logo_big.gif" /></div>';
    html += '<div class="clear columns go-left">';
    html += '    <h1>' + Translate("headings.welcome.to") + '</h1>';
    html += '    <p>' + Translate("admin.beta.text") + '</p>';
    html += '</div>';
    html += '<div class="columns go-right">';
    html += '    <h1>' + Translate("admin.beta.header") + '</h1>';
    html += '    <div id="beta_login_container" class="user_form">';
    html += '        <div>';
    html += '            <label for="beta_password">' + Translate("common.password") + ':</label>';
    html += '            <input type="password" id="beta_password" maxlength="20" size="20" class="validate" />';
    html += '        </div>';
    html += '        <br />';
    html += '        <a href="javascript:betaLogin()" class="button_green"><span>' + Translate("forms.log_in") + '</span></a>';
    html += '        <div class="clear"></div>';
    html += '    </div>';
    html += '</div><div class="clear"></div>';
    
    
    createObject(html, "beta_login", "user_form"); */
}

function betaLogin() {
    if(validateForm("beta_login",Translate("common.missing"), "", Translate("common.incorrect"))) {
        var password = $get("beta_password").value;
        createUpdateWindow(Translate("admin.beta.open.access"));    
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.BetaLogin(password, OnBetaLoginSuccess, OnBetaLoginError); 
    }
}

function OnBetaLoginSuccess() {
    stopUpdateWindow();
    showContainer("top_container");
    showContainer("content_container");
    showContainer("add_area");
    deleteObject("object_container");
}

function OnBetaLoginError(error) {
    stopUpdateWindow();
    createAlert(error.get_message());
}

function deleteBetaPassword(guid) {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteBetaPassword(guid, OnBetaDeleted, OnBetaError);
}

function OnBetaDeleted() {
    FilterViewRefresh("beta_table");
}

function OnBetaCreated() {
    deleteAlert();
    FilterViewRefresh("beta_table");
}

function OnBetaError(err) {
    createError(err.get_message());
}

function createBetaPasswordWindow() {
    html = '<div class="user_form" id="beta_new_container"><h2>' + Translate("common.new_password") + '</h2>';
    html += '<div>';
    html += '    <label for="beta_password">' + Translate("common.password") + ' *</label>';
    html += '   <input type="password" id="beta_password" maxlength="20" class="validate" size="20" />';
    html += '</div>';
    html += '<div>';
    html += '    <label for="beta_password">' + Translate("common.description") + ' *</label>';
    html += '    <input type="text" id="beta_label" class="validate" maxlength="50" size="20" />';
    html += '</div>';
    html += '<div>';
    html += '    <label for="beta_password">' + Translate("common.expires") + ' *</label>';
    html += '    <input type="text" id="beta_expires" class="validate" maxlength="20" size="20" value="2008-12-31"/>';
    html += '</div>';
    html += '<br />';
    html += '<a href="javascript:createBetaPassword()" class="button_green"><span>' + Translate("forms.save") + '</span></a>';
    html += '<a href="javascript:deleteAlert()" class="button_red"><span>' + Translate("forms.cancel") + '</span></a>';
    html += '<div class="clear"></div>';
    html += '</div>';
    
    createAlert(html);
}

function createBetaPassword() {
    var password = document.getElementById("beta_password").value;
    var label = document.getElementById("beta_label").value;
    var expires = document.getElementById("beta_expires").value;
    
    if(validateForm("beta_new_container", Translate("common.missing"), "", "", "") ) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateBetaPassword(password, label, expires, OnBetaCreated, OnBetaError);
    }
}

function trackPages(page) {
	try {
		var pageTracker = _gat._getTracker("UA-10857116-1");
		pageTracker._trackPageview(page);
	} 
	catch(err) {}
}
