// JavaScript Document
/* 
Moja-Trgovina.NET
2006-2008
MAIN FRONTEND JS LIBRARY
(c) Sistrum d.o.o.
*/

function ClickOnEnter(e, id)
{
    e = arguments.length > 0 ? arguments[0] : window.event;
    if(e.keyCode == 13)
    {
        var elem = document.getElementById(id);
        if(!elem)
        {
            alert("Došlo je do pogreške (elem?)");
            return;
        }
        ClickButton(elem, false);
    }
}

function ClickButton(elem, inOpener)
{
    if(!elem)
    {
        alert("Došlo je do pogreške (elem?)");
        return;
    }
    if(!elem.href)
    {
        alert("Došlo je do pogreške (elem.href?)");
        return;
    }
    if(inOpener)
        eval("window.opener." + elem.href.replace("javascript:", ""));
    else
        eval(elem.href.replace("javascript:", ""));
}


function WindowOpenXY( url, x, y )
{
	var prms = "Width=" + x + "px, Height=" + y + "px, left=100, top=100, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes";
	var wnd = window.open(url, "", prms );
	if( wnd )
	    wnd.focus();
}


function ToggleListSelection()
{
    var cbox_list = document.getElementsByName("selected");
    if( cbox_list )
    {
        for( i = 0; i< cbox_list.length; i++ )
        {
            cbox_list[i].checked = !cbox_list[i].checked;
        }
    } 
}

function RequestQueryString(qs_name)
{
	var qs = document.location.search;
	if( qs < 1 )
		return null;
	else
		qs = qs.substring(1,qs.length);
	var qs_arr = qs.split('&');
	
	for( var i = 0; i<qs_arr.length; i++ )
	{	
		var qname = qs_arr[i].split('=')[0].toString().toLowerCase();
		if( qname == qs_name.toString().toLowerCase() )
			return qs_arr[i].split('=')[1];
	}
	return null;
}

function StringFormat()
{
	var s = arguments[0];
	for( var i=1; i<arguments.length; i++ ) 
    {
        var placeholder = "{" + parseInt(i-1) + "}";
        var value = arguments[i].toString();
        while( s.indexOf(placeholder) != -1 )
            s = s.replace( placeholder, value );
    }
	return s;
}

function IsNullOrEmpty( s )
{
    return ( ( !s ) || ( s.toString() == "" ) )
}

function ToggleVisibility(elemId)
{
    var elem = document.getElementById(elemId);
    if( !elem )
        return;
    if(elem.style.display=='block')
        elem.style.display='none';
    else
        elem.style.display='block';
}

function ToggleVisibilityInline(elemId)
{
    var elem = document.getElementById(elemId);
    if( !elem )
        return;
    if(elem.style.display=='inline')
        elem.style.display='none';
    else
        elem.style.display='inline';
}

function CheckCCInput(cardNumber, cardType)
{
    var isValid = false;
    var ccCheckRegExp = /[^\d ]/;
    isValid = !ccCheckRegExp.test(cardNumber);

    if (isValid)
    {
        var cardNumbersOnly = cardNumber.replace(/ /g,"");
        var cardNumberLength = cardNumbersOnly.length;
        var lengthIsValid = false;
        var prefixIsValid = false;
        var prefixRegExp = null;

        switch(cardType)
        {
            case "MSTR":
            lengthIsValid = (cardNumberLength == 16);
            prefixRegExp = /^5[1-5]/;
            break;

            case "VISA":
            lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
            prefixRegExp = /^4/;
            break;

            case "AMEX":
            lengthIsValid = (cardNumberLength == 15);
            prefixRegExp = /^3(4|7)/;
            break;

            case "DNRS":
            lengthIsValid = (cardNumberLength == 15);
            prefixRegExp = /^$/;
            break;
        }

        if(prefixRegExp == null )
        {
            alert("Nepoznata vrsta kreditne kartice!");
            return false;
        }
        prefixIsValid = prefixRegExp.test(cardNumbersOnly);
        isValid = prefixIsValid && lengthIsValid;
    }

    if (isValid)
    {
        var numberProduct;
        var numberProductDigitIndex;
        var checkSumTotal = 0;

        for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--)
        {
            checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
            digitCounter--;
            numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
            for (var productDigitCounter = 0;productDigitCounter < numberProduct.length; productDigitCounter++)
            {
                checkSumTotal += parseInt(numberProduct.charAt(productDigitCounter));
            }
        }

        isValid = (checkSumTotal % 10 == 0);
    }

    return isValid;
}


// event helpers
function AddEventHandler(element, type, func) 
{
	if(element.addEventListener) {
		element.addEventListener(type,func,false);
	}
	else if (element.attachEvent) {
		element.attachEvent('on'+type,func);
	}
}

function RemoveEventHandler(element, type, func) 
{
	if(element.removeEventListener) {
		element.removeEventListener(type,func,false);
	}
	else if (element.attachEvent) {
		element.detachEvent('on'+type,func);
	}
}


function pause(milliseconds)
{
    var _date = new Date();
    var _curDate = null;
    do 
    { 
        _curDate = new Date(); 
    }
    while(_curDate-_date < milliseconds);
} 
