/* 
 This file was generated by Dashcode.  
 You may edit this file to customize your widget or web page 
 according to the license.txt file included in the project.
 */

//
// Function: load()
// Called by HTML body element's onload event when the web application is ready to start
//
function load()
{
    dashcode.setupParts();

    window.scrollBy(0, 0);
    
    var userName= GetCookie("username");
    var password = GetCookie("password");
    var ctryNameVal = GetCookie("ctryNameVal");
    var ctryNameDisplay = GetCookie("ctryName");

    if (userName == null || userName == "" || password == null || password == "" || ctryNameVal == null || ctryNameVal == "")
    {
        setActive('btnSettings');
        setLocalCurrentView('viewSettings');
    }
    else
    {
    
        if (userName != null && userName != "")
             document.getElementById("txtUserName").value = userName;
        
         if (password != null && password != "")
            document.getElementById("txtPassword").value = password;     
            
        
         if (ctryNameDisplay != null && ctryNameDisplay != ""){
            document.getElementById('lblCountry').innerText = ctryNameDisplay;
            var combo = document.getElementById('popupCountryList');
            for (var i=0; i<combo.length; i++){
                if (combo.options[i].text == ctryNameDisplay){
                    combo.options[i].selected= true;
                    break;
                }
            }
        }
        else
        {
            document.getElementById('lblCountry').innerText = "Unknow Country";
        }
        setActive('btnDialer');
        setLocalCurrentView('viewDialANumber');
    }
    
    
}

var countryCode = [
    { name: "Austria", code: "43" }, 
    { name: "Belgium", code: "32" }, 
    { name: "Canada", code: "1" }, 
    { name: "Denmark", code: "45" }, 
    { name: "Finland", code: "358" }, 
    { name: "France", code: "33" }, 
    { name: "Germany", code: "49" }, 
    { name: "Ireland", code: "353" }, 
    { name: "Italy", code: "39" }, 
    { name: "Luxembourg", code: "352" }, 
    { name: "Netherlands", code: "31" }, 
    { name: "Norway", code: "47" }, 
    { name: "Pakistan", code: "92" }, 
    { name: "Portugal", code: "351" }, 
    { name: "Romania", code: "40" },
    { name: "Spain", code: "34" },  
    { name: "Sweden", code: "46" }, 
    { name: "Switzerland", code: "41" }, 
    { name: "United Kingdom", code: "44" }, 
    { name: "USA", code: "1" }, 
];


                        
function findCountryCode()
{
    var temp = document.getElementById('lblCountry').innerText;
    for (i=0; i<countryCode.length; i++)
    {
            if (countryCode[i].name == temp)
            {
                return countryCode[i].code;
            }
    }
    return "";
}
function onSmsClick(event)
{
    // Insert Code Here

    //var currView = document.getElementById( pagesHolder[currentPage] );
    //viewStack.object.setCurrentView(currView,false);
   // alert('hi');
   
   
}

function setLocalCurrentView(id)
{
    var userName = document.getElementById("txtUserName").value;
    var password = document.getElementById("txtPassword").value;
    SetCookie('username',userName,30);
    SetCookie('password',password,30);

    var combo = document.getElementById("popupCountryList");
    if (combo != null && combo.selectedIndex != -1)
    {
        document.getElementById('lblCountry').innerText = combo.options[combo.selectedIndex].text;
        SetCookie('ctryName',combo.options[combo.selectedIndex].text,30);
        SetCookie('ctryNameVal',combo.options[combo.selectedIndex].value,30);
    }

    var ele = document.getElementById('stackLayout');
    ele.object.setCurrentView(id,true,true);  

}

function setSettingsFirst()
{
    var userName = document.getElementById("txtUserName").value;
    var password = document.getElementById("txtPassword").value;
    
    if (userName == null || userName == "" || password == null || password == "")
    {
        alert('username or password can\'t be empty');
        setActive('btnSettings');
        var ele = document.getElementById('stackLayout');
        ele.object.setCurrentView('viewSettings',true,true);  
        return false;
    }
    else 
        return true;
}

function onclickDialANumber(event)
{
    // Insert Code Here
    var callButton = document.getElementById('btnCall');
    callButton.object.setText('Call'); 
    setActive('btnDialer');    
    setLocalCurrentView('viewDialANumber');
    
     
}


function onclickSendSMS(event)
{
    // Insert Code Here
    setActive('btnSendSMS');
    setLocalCurrentView('viewSendSMS');
}


function onclickTellAFriend(event)
{
    // Insert Code Here
    setActive('btnTellAFriend');
    setLocalCurrentView('viewTellAFreind');
}


function onclickSettings(event)
{
    // Insert Code Here
    setActive('btnSettings');
    setLocalCurrentView('viewSettings');
}


function onclickUpdate(event)
{
    // Insert Code Here
    if (setSettingsFirst() == false)
        return;
     setActive('btnTopUp');
     var url = originalURL+'vopium/getmobiletopupseccode.htm?phone='+GetCookie("username")+'&pw='+ GetCookie("password");
    GetAjaxPage(url, 'getmobiletopupseccode','divSendSMS');
}


function onButtonPush(id)
{
    var v = document.getElementById("lblNumber");
    if (v.innerText.length > 17)
        return;
    v.innerText = v.innerText + id;
}


function onButtonBackSpace()
{
    var v = document.getElementById("lblNumber");
    if (v.innerText.length > 0)
    {
        var str = v.innerText;
        str = str.substring(0,str.length -1);
        v.innerText = str;
    }
}

function onclickTemp(event)
{
    // Insert Code Here
}

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 "";
}

function SetCookie(c_name,value,expiredays)
{
    //alert('SetCookie');
    var today = new Date();
    today.setTime(today.getTime() );
    var expiredays = 30;
    expiredays = expiredays * 1000 * 60 * 60 * 24 * (12);
    //alert(expiredays);
    var expires_date = new Date( today.getTime() + (expiredays) );
    //alert(expires_date);
    var cookieValue = c_name+ "=" +escape(value) + ( ( expiredays ) ? ";expires=" + expires_date.toGMTString() : "" );
    //alert(cookieValue);
    
    document.cookie=cookieValue;
    //document.cookie=c_name+ "=" +escape(value);
    
}

var backFocus;
var backtxtFill;
var originalURL = 'http://vopium.com/';
var originalURLSecure = 'https://vopium.com/';

function ShowDialler(divToBack,txtFieldToFill)
{
    //alert('hello');
    backFocus = divToBack;
    backtxtFill = txtFieldToFill;
    
    var callButton = document.getElementById('btnCall');
    callButton.object.setText('Add');
    callButton.focus();
    setLocalCurrentView('viewDialANumber');

}

function startsWith(str,strcmp)
{
    for (i=0; i<str.length; i++)
    {
        if (strcmp.length == i)
            return true;

        if (str[i] == strcmp[i])
            continue;
        else
            return false;
    }
    
    return false;
}
function isNumberInternational(str)
{
     if (startsWith(str, '+') || startsWith(str, '00') || startsWith(str, '011') )
        return true;
     else
        return false;
}

function appendCountryCode(numbers)
{
    var temp = new Array(); 
    temp = numbers.split(',');
    var destStr = "";
    var len = temp.length;
    var i = 0;
    for (i=0; i<len; i++)
    {
        var str = trim(temp[i]);
        if (isNumberInternational(str))
        {
            if (destStr.length == 0)
                destStr = str;
            else
                destStr = destStr +", " +str;
        }
        else
        {
            if (startsWith(str,"0"))
                str = str.substring(1,str.length);
                
            str = "00" + findCountryCode() + str;            
            if (destStr.length == 0)
                destStr = str;
            else
                destStr = destStr +", " +str;
        }
    }
    return destStr;
}
function onclickCall(event)
{
    // Insert Code Here
    var callButton = document.getElementById('btnCall');
    var number = document.getElementById("lblNumber");
    if (callButton.object.getText() == "Call")
    {
        var countryAccessNumber = GetCookie("ctryNameVal");
        if (number.innerText != "" && countryAccessNumber !=null && countryAccessNumber != "")
        {
            var str = number.innerText;
            if (isNumberInternational(number.innerText))
            {
                if (startsWith(str, '+'))
                {
                    number.innerText = '00' + number.innerText.substring(1,number.innerText.length);
                }
                if (setSettingsFirst() == false)
                    return;   
                var countryCode = findCountryCode();
                if (startsWith(number.innerText,'00'+countryCode) || startsWith(number.innerText,'+'+countryCode) || startsWith(number.innerText,'011'+countryCode))
                {
                     document.location = 'tel:'+number.innerText;
                     number.innerText = "";
                }
                else
                {
                    var url = originalURL + 'iphone/iphone.php?src='+GetCookie("username")+'&dst='+ number.innerText;                
                    GetAjaxPage(url, 'iphone','divSendSMS');
                }
            }
            else
            {
               /* var temp = document.getElementById('lblCountry').innerText;
                if (temp == 'Unknow Country')
                {
                    
                }
                else
                {                    
                    document.location = 'tel:'+findCountryCode()+number.innerText;
                    number.innerText = '';
                }
                */
                document.location = 'tel:'+number.innerText;
                number.innerText = '';
                
            }
        }
    }
    else
    {
        var temp = document.getElementById(backtxtFill);
        if (number.innerText != "")
        {
            if (temp.value == "")
            {
                temp.value = number.innerText; 
            }
            else
                temp.value = temp.value + ', ' + number.innerText;
            number.innerText = "";
        }
        setLocalCurrentView(backFocus);
    }
}

function setActive(btnName)
{
    setAllDeactivate();   
    setCustomState(btnName,PushButton.STATE_ON); 
}

function setAllDeactivate()
{
    setCustomState('btnDialer',PushButton.STATE_OFF); 
    setCustomState('btnSendSMS',PushButton.STATE_OFF);   
    setCustomState('btnTellAFriend',PushButton.STATE_OFF);  
    setCustomState('btnSettings',PushButton.STATE_OFF);
    setCustomState('btnTopUp',PushButton.STATE_OFF);
}

function setCustomState(btnID, state)
{
    var btn = document.getElementById(btnID);
    if (btn !=null && btn.object != null)
        btn.object.setState(state);
}

function onclickSendTellAFriend(event)
{

    // Insert Code Here

//    if (setSettingsFirst() == false)
 //       return;
    var toNumbers = document.getElementById('txtTellAFreind').value;
    
    if (toNumbers != "")
    {
        toNumbers = appendCountryCode(toNumbers);
        var url = originalURL + 'vopium/sms2invite.htm?username='+GetCookie("username")+'&password='+GetCookie("password")+'&tophone='+toNumbers;
        GetAjaxPage(url, 'sms2invite','divTellAFriend');
    }
    
}

function GetAjaxPage(url, referenceKey, toHide)
{
    var loader = document.getElementById('viewLoader');
    loader.style.visibility = 'visible';
    var page_request = false;
    page_request = new XMLHttpRequest();
          
    page_request.onreadystatechange=function(){
        LoadPage(page_request, referenceKey, toHide);
    }
    page_request.onerror = function(){
        var loader = document.getElementById('viewLoader');
        loader.style.visibility = 'hidden';
    }
    //if (bustcachevar) //if bust caching of external page
    //    bustcacheparameterurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
        
    try{
        //url = url + bustcacheparameter;
        //alert('in try');
        page_request.open('GET', url, true);
    }catch(e){
        alert('GetAjaxPage Exception:'+e);
    }
    page_request.send(null);   
}


function LoadPage(page_request, referenceKey,toHide){
    //alert (''+page_request.readyState + ", " + page_request.status);
    if (page_request.readyState == 4 && (page_request.status==200 ))//|| window.location.href.indexOf("http")==-1))
    {
        var loader = document.getElementById('viewLoader');
        loader.style.visibility = 'hidden';
        if (referenceKey == 'vopiumsms')
        {
            alert(page_request.responseText);
            document.getElementById('txtSendSMSTo').value = '';
            document.getElementById('txtSendSMSMessage').value = '';
            
        }
        else if (referenceKey == 'sms2invite')
        {
            alert(page_request.responseText);
            document.getElementById('txtTellAFreind').value = '';
        }
        else if (referenceKey == 'getmobiletopupseccode')
        {
            if (page_request.responseText.length > 8 )
            {
                alert(page_request.responseText);
            }
            else
            {
                window.location = originalURLSecure+'vopium/buycredit.htm?phone='+GetCookie("username") + "&pc=" + page_request.responseText;
            }
             
        }
        else if (referenceKey == 'iphone')
        {
            if (page_request.responseText == 'SUCCESS')
            {
                var cook = GetCookie("ctryNameVal");
                if (cook == null || cook == "")
                {
                  alert('country settings not found');
                  return;
                }
                    
                var temp = 'tel:'+ cook ;//+ pause + number.value ;
                document.getElementById("lblNumber").innerText = "";
                document.location = temp;
            }
            else
            {
                alert('unable to place call');
            }
        }        
    }
}


function onclickSendSendSMS(event)
{

    // Insert Code Here
    if (setSettingsFirst() == false)
        return;
    var toNumbers = document.getElementById('txtSendSMSTo').value;
    var message = document.getElementById('txtSendSMSMessage').value;
    if (toNumbers != "")
    {
        
        //var toNumbers = document.getElementById("txtToNumbersTell").value;
        toNumbers = appendCountryCode(toNumbers);
        var url = originalURL + 'vopium/vopiumsms.htm?username='+GetCookie("username")+'&password='+GetCookie("password")+'&tophone='+toNumbers + '&message='+message;
        
        GetAjaxPage(url, 'vopiumsms','divTellAFriend');
    }
    
}

function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


