var startInput = null;

var ajaxCall = false;

function ajaxQuickMenu(vars) {
	if(!ajaxCall) {
		ajaxCall = true;
		xajax_buildTicketsContent(vars);
	}
}

function loadImage(mId, mSrc) {	
	document.getElementById(mId).src = mSrc;
}

function showObject(name) {	
	if(!ajaxCall) {
		obj = document.getElementById(name);
		if(obj) {
			obj.style.display = "inline";		
		}
	}
}

function focusInput(obj) {
    if(startInput == null) {
        startInput = obj.value;
    }

    if(obj.value == startInput) {
        obj.value = '';
    }
}

function blurInput(obj) {
    if(obj.value == '') {
        obj.value = startInput;
    }
}

function goSearch(formulier) {
    var searchStr = document.getElementById('search_input');
    if(searchStr) {
        searchStr = searchStr.value;
        searchStr = searchStr.replace("/", "");
        if(searchStr.length > 0) {
            document.location.href = formulier.action + '?q=' + searchStr;
        }
        else {
            return false;
        }
    }
    return false;
}

function dateChanged(calendar) {
	var url = '/services/quickCalendarGet';
	if (calendar.dateClicked) {
        var y = calendar.date.getFullYear();
        var m = calendar.date.getMonth();     // integer, 0..11        
        var d = calendar.date.getDate();      // integer, 1..31
        var params1 = 'year=' + y + '&';
        var params2 = 'module=quickCalendar&'
        var params3 = 'month=' + m + '&';
        var params4 = 'day=' + d ;

        $.getScript(url + '?' + params1 + params2 + params3 + params4);
    } 
    else {
        da = new Date(document.lastModified);
        dy = da.getFullYear();
        dm = da.getMonth();        
        dd = da.getDate(); 	
        var params1 = 'year=' + dy + '&';
        var params2 = 'module=quickCalendar&'
        var params3 = 'month=' + dm + '&';
        var params4 = 'day=' + dd ;

        $.getScript(url + '?' + params1 + params2 + params3 + params4);
    }

}
//ajax response van cities en locations

function quickSearchGet(module, moduleId, destinationId) {
	var url = '/services/quickSearchGet';	
	if(moduleId.length > 0 && module.length > 0) {
    	var params1 = 'module_id=' + moduleId + '&';
    	var params2 = 'module=' + module;

    	
        $.ajax({
            type    : "get",
            url     : url,
            data    : params1 + params2,
            success : function(msg){
                        $("#" + destinationId).html(msg);
                    }
        });
    }
}
function hoverTicket(obj, highlight) {
    var objClass;

    if(highlight) {
        objClass = 'hoverItem';
    }
    else {
        objClass = '';
    }

    if(obj) {
        var currentClass = obj.className;
        if(currentClass.indexOf('highlight')) {
            objClass = 'highlight ' + objClass;
        }
        obj.className = objClass;
    }
}

function wishlistSelect(selectObj) {
    if(selectObj.value) {
        document.location.href = selectObj.value;
    }
}

function bookmark(bookmarktitel) {
    if(bookmarktitel == '' || bookmarktitel == undefined) {
        bookmarktitel = document.title;
    }
    var bookmarklink = document.location.href;

    if(document.all) {
        //MSIE
        window.external.AddFavorite(bookmarklink, bookmarktitel);
    }
    else {
        // firefox
        window.sidebar.addPanel(bookmarktitel, bookmarklink,"");
    }
}

function toggleReviewPage(showReviews) {
    var reviewResultsObj = document.getElementById('reviewResults');
    var reviewWriteObj = document.getElementById('reviewWrite');

    if(reviewResultsObj && reviewWriteObj) {
        if(showReviews) {
            reviewResultsObj.style.display = '';
            reviewWriteObj.style.display = 'none';
        }
        else {
            reviewResultsObj.style.display = 'none';
            reviewWriteObj.style.display = '';
        }
    }
    return false;
}

function hoverInfo(id, visible) {
	var obj = document.getElementById(id);

    if(obj) {
        if(visible) {
            obj.style.display = "";
        }
        else {
            obj.style.display = "none";
        }
    }
}

function duplicateTextField(fieldName) {
    fieldIdName = fieldName.replace("[", "");
    fieldIdName = fieldIdName.replace("]", "");

    totalInputs = document.getElementsByName(fieldName).length;

    fieldId     = fieldIdName + '_' + totalInputs;

    inputText = '<br /><input type="text" class="text" id="' + fieldId + '" name="' + fieldName + '" />';

    $("#emailToMore").append(inputText);

    document.getElementById(fieldId).focus();
}

var popUpWin;

function openCentered(documentSrc, windowWidth, windowHeight,scrBars,res) {
    var resizable = (res != null) ? res : 0;

    if(popUpWin){
        if(!popUpWin.closed) popUpWin.close();
    }

    windowLeft = (window.screen.width  - windowWidth)  >> 1;
    windowTop  = (window.screen.height - windowHeight) >> 1;

    popUpWin = window.open(documentSrc, '','toolbar=0,channelmode=0,location=0,menubar=0,resizable=' + resizable + ',status=0,scrollbars=' + scrBars + ',width=' + windowWidth + ',height=' + windowHeight + ',left=' + windowLeft + ',top=' + windowTop);
    popUpWin.focus();

    return popUpWin;
}

function updateStars(elementId, inputId) {
    stars = elementId.innerHTML;
    width = stars * 20;
    document.getElementById('current-rating').style.width = width + 'px';
    document.getElementById(inputId).value = stars;
    
    document.getElementById('rating-clicked').value = 1;
}

/*Kalender MORE uitklappen*/
function toggleCal(id) {
    var moreLabel = document.getElementById("calMoreLabel" + id);
    var lessLabel = document.getElementById("calLessLabel" + id);
    var content = document.getElementById("calContent" + id);
    if (content.style.display == 'none') {
        content.style.display = 'block';
        moreLabel.style.display = 'none';
        lessLabel.style.display = 'block';
    }
    else {
        content.style.display = 'none';
        moreLabel.style.display = 'block';
        lessLabel.style.display = 'none';
    }
}

function toggleMailafriend() {
    $("#mailafriend").slideToggle("slow");
}

$(document).ready(function(){
    $("#mailafriendTrigger").click(function () {
        toggleMailafriend();
    });
    $("#mailafriendTrigger2").click(function () {
        toggleMailafriend();
    });
});

//-----------------
//Base 64
//-----------------
var END_OF_INPUT = -1;

var base64Chars = new Array(
 'A','B','C','D','E','F','G','H',
 'I','J','K','L','M','N','O','P',
 'Q','R','S','T','U','V','W','X',
 'Y','Z','a','b','c','d','e','f',
 'g','h','i','j','k','l','m','n',
 'o','p','q','r','s','t','u','v',
 'w','x','y','z','0','1','2','3',
 '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
 reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
 base64Str = str;
 base64Count = 0;
}
function readBase64(){
 if (!base64Str) return END_OF_INPUT;
 if (base64Count >= base64Str.length) return END_OF_INPUT;
 var c = base64Str.charCodeAt(base64Count) & 0xff;
 base64Count++;
 return c;
}
function base64_encode(str){
		str = ''+str;
 setBase64Str(str);
 var result = '';
 var inBuffer = new Array(3);
 var lineCount = 0;
 var done = false;
 while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
     inBuffer[1] = readBase64();
     inBuffer[2] = readBase64();
     result += (base64Chars[ inBuffer[0] >> 2 ]);
     if (inBuffer[1] != END_OF_INPUT){
         result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
         if (inBuffer[2] != END_OF_INPUT){
             result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
             result += (base64Chars [inBuffer[2] & 0x3F]);
         } else {
             result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
             result += ('=');
             done = true;
         }
     } else {
         result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
         result += ('=');
         result += ('=');
         done = true;
     }
     lineCount += 4;
     if (lineCount >= 76){
         result += ('\n');
         lineCount = 0;
     }
 }
 return result;
}

function readReverseBase64(){
 if (!base64Str) return END_OF_INPUT;
 while (true){
     if (base64Count >= base64Str.length) return END_OF_INPUT;
     var nextCharacter = base64Str.charAt(base64Count);
     base64Count++;
     if (reverseBase64Chars[nextCharacter]){
         return reverseBase64Chars[nextCharacter];
     }
     if (nextCharacter == 'A') return 0;
 }
 return END_OF_INPUT;
}

function ntos(n){
 n=n.toString(16);
 if (n.length == 1) n="0"+n;
 n="%"+n;
 return unescape(n);
}

function base64_decode(str){
 setBase64Str(str);
 var result = "";
 var inBuffer = new Array(4);
 var done = false;
 while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
     && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
     inBuffer[2] = readReverseBase64();
     inBuffer[3] = readReverseBase64();
     result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
     if (inBuffer[2] != END_OF_INPUT){
         result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
         if (inBuffer[3] != END_OF_INPUT){
             result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
         } else {
             done = true;
         }
     } else {
         done = true;
     }
 }
 return result;
}


