function off(i)     { var n; if (i.id == '') { n=i.name; } else if (i.id.indexOf('-') == -1) { n=i.id; } else { n=i.id.substr(0,i.id.indexOf('-')); } i.src=('/data/images/frontend/'+n+'.gif'); }
function on(i)      { var n; if (i.id == '') { n=i.name; } else if (i.id.indexOf('-') == -1) { n=i.id; } else { n=i.id.substr(0,i.id.indexOf('-')); } i.src=('/data/images/frontend/'+n+'_ov.gif'); }
function press(i)   { var n; if (i.id == '') { n=i.name; } else if (i.id.indexOf('-') == -1) { n=i.id; } else { n=i.id.substr(0,i.id.indexOf('-')); } i.src=('/data/images/frontend/'+n+'.gif'); }
function cnfrm(m,l) { var c=confirm(m); if (c) { document.location.href=l; } }

// GLOBAL
function validateGlobalSearchForm(msg)
{
    if ( document.forms.glbsearchform.search_key_1.value == "" )
    {
        alert(unescape(msg));
        return false;
    }
    return true;
}


// GUIDEDSEARCH
function validateSmallSearchForm(msg)
{
    if ( document.forms.searchform.search_key_1.value == "" )
    {
        alert(unescape(msg));
        return false;
    }
    return true;
}

// LIGHTBOX
function emptyLightbox() { cnfrm(lcl_empty_lightbox,'/data/php/frontend.actions.php?action=lightbox-empty&lightbox=0'); }
function emptyLightboxFolder(lb) { cnfrm(lcl_empty_lightbox_folder,'/data/php/frontend.actions.php?action=lightbox-empty&lightbox='+lb); }
function removeLightbox(lb) { cnfrm(lcl_remove_lightbox,'/data/php/frontend.actions.php?action=lightbox-remove&lightbox=' + lb); }
function emptyBasket(pl) { if(pl!='') { cnfrm(lcl_empty_basket,'_/_deletefromshoppingbasket.php?photos_to_delete=' + pl); } }
function lbAction(action)
{
    var selected_photos = new Array();
    var inputs = document.getElementsByTagName('input');
    for (var x=0 ; x<inputs.length ; x++)
    {
        var el = inputs[x];
        if (el.type == 'checkbox' && el.name.substr(0,6) == 'photo_' && el.checked)
            selected_photos[selected_photos.length] = el.value;
    }
    if (selected_photos.length == 0) { alert(lcl_select_photos); return; }

    if (action == 'copymove_to_lightbox')
    {
        document.forms.copymove_form.photos.value='[' + selected_photos.join('][') + ']';
        var act;
        if (document.forms.copymoveform.photoaction[0].checked) { act=document.forms.copymoveform.photoaction[0].value; }
        if (document.forms.copymoveform.photoaction[1].checked) { act=document.forms.copymoveform.photoaction[1].value; }
        document.forms.copymove_form.cmaction.value=act;
        document.forms.copymove_form.source.value=document.forms.copymoveform.sourcelightbox.value;
        document.forms.copymove_form.destination.value=document.forms.copymoveform.targetlightbox.value;
        document.forms.copymove_form.submit();
    }
    else if (action == 'delete_selection')
    {
        document.forms.delete_selection_form.photos_to_delete.value='[' + selected_photos.join('][') + ']';;
        document.forms.delete_selection_form.submit();
    }
    else if (action == 'order_selection')
    {
        document.forms.order_selection_form.photos_to_add.value='[' + selected_photos.join('][') + ']';;
        document.forms.order_selection_form.submit();
    }
}
function lbBoxSelection(b,l)
{
    if (b == 'new')
    {
        if (!l)
            alert(lcl_lb_notloggedin);
        else
        {
            var name = prompt(lcl_lb_spec_name);
            if (name)
                if (name == '')
                    alert(lcl_lb_valid_name);
                else
                    document.location.href = '/data/php/frontend.actions.php?action=lightbox-create&name=' + encodeURIComponent(name);
        }
    }
    else
        document.location.href='/lightbox?lightbox='+b;
}
function lbChangeBoxName(lb,lbn)
{
    var newname = prompt(lcl_lb_spec_new_name, lbn);
    if (newname)
        if (newname != "")
            document.location.href = '/data/php/frontend.actions.php?action=lightbox-rename&lightbox=' + lb + '&name='+escape(newname);
        else
            alert(lcl_lb_valid_name);
}
function lbAddNote(lb)
{
    var note = prompt(lcl_lb_spec_note, '');
    if (note)
        document.location.href='/data/php/frontend.actions.php?action=lightbox-addnote&&lightbox='+lb+'&note='+ encodeURIComponent(note);
}
function lbSelect(action)
{
    var inputs = document.getElementsByTagName('input');
    for (var x=0 ; x<inputs.length ; x++)
    {
        var el = inputs[x];
        if (el.type == 'checkbox' && el.name.substr(0,6) == 'photo_')
            el.checked=action;
    }
}

// SEARCH
var search_catselectors_shown = 0;
function appendCatselector(selectedCat)
{
  var div = document.getElementById('combocats');
  if (div)
  {
    var p = document.createElement('p');
    var select = document.createElement('select');
    select.id = 'cat-'+search_catselectors_shown;
    select.className = 'formDrop select';
    select.onchange = doCatSelection;
    for (x in cats)
    {
      var opt = document.createElement('option');
      opt.value = x
      if ( selectedCat == x )
        opt.selected = 'selected';
      opt.appendChild(document.createTextNode(cats[x]));
      select.appendChild(opt);
    }
    p.appendChild(select);

    if (search_catselectors_shown == 0)
    {
      var pluscontainer = document.createElement('span');
      pluscontainer.className = 'add-node';
      var plusbtn = document.createElement('img');
      plusbtn.src='/data/images/frontend/plus.gif';
      plusbtn.name='plus';
      plusbtn.className='formButton';
      plusbtn.onclick=appendCatselector;
      plusbtn.onmouseover= function () { on(this); }
      plusbtn.onmouseout= function () { off(this); }
      plusbtn.onmousedown= function () { press(this); }
      pluscontainer.appendChild(plusbtn);
      p.appendChild(document.createTextNode('   '));
      p.appendChild(pluscontainer);
    }
    div.appendChild(p);
    search_catselectors_shown++;
  }
}

function doCatSelection()
{
  var cats = document.getElementById('search-cats');
  if (cats)
  {
    var tmp = new Array();
    var selects = document.getElementsByTagName('select');
    for (var x=0 ; x<selects.length ; x++)
    {
      var s = selects[x];
      if (s.id.substring(0,4) == 'cat-' && s.value != '')
        tmp[tmp.length] = s.value;
    }
    cats.value = tmp.join(',');
  }
}

function advSrch(x)
{
    var o = document.getElementById('advsearchbox');
    if (x)
    {
        o.style.display = 'block';
        fadeAdvSrch('in', true);
    }
    else
    {
        fadeAdvSrch('out', true);
        o.style.display = 'none';
    }
    document.forms.searchform.search_key_1.value = '';
}

var cur_opacity = 0;
function fadeAdvSrch(inout,start)
{
    var b = '';
    if (start && inout == 'in')
        cur_opacity = 0;
    else if (start && inout == 'out')
        cur_opacity = 100;
    if (inout == 'in' && cur_opacity < 100)
    {
        cur_opacity += 30;
        if (document.all && document.getElementById)
            document.getElementById('advsearchbox').style.filter = 'alpha(opacity=' + cur_opacity +')';
        else
            document.getElementById('advsearchbox').style.opacity = cur_opacity/100;
        setTimeout("fadeAdvSrch('"+inout+"')",40);
    }
    else if (inout == 'out' && cur_opacity > 100)
    {
        cur_opacity -= 30;
        if (document.all && document.getElementById)
            document.getElementById('advsearchbox').style.filter = 'alpha(opacity=' + cur_opacity +')';
        else
            document.getElementById('advsearchbox').style.opacity = cur_opacity/100;
        setTimeout("fadeAdvSrch('"+inout+"')",40);
    }
}

function validateAdvSearchForm()
{
    if (	document.forms.advsearchform.search_key_1.value == '' &&
            document.forms.advsearchform.search_key_2.value == '' &&
            document.forms.advsearchform.search_key_3.value == '' &&
            document.forms.advsearchform.search_key_4.value == '' &&
            document.forms.advsearchform.photographer.value == 'all' &&
            document.forms.advsearchform.orientation.value == 'all' 
       )
       {
            for (var x=0 ; x<search_catselectors_shown ; x++)
                if (document.getElementById('cat-' + x).value != '')
                    return true;
            alert(lcl_specify_search_crit);
            return false;
       }
    return true;
}

// ORDER
function duplicatePhotoDetails(src)
{
    var source_size = getRadioValue('size_'+src);
    var source_placement = getRadioValue('placement_'+src);
    if (!source_size || !source_placement) { return; }
    var source_is_cover = document.forms.orderForm['is_cover_'+src].checked;
    for (var x=1 ; x <= total_amount_of_photos ; x++)
    {
        setRadioValue('size_' + x, source_size);
        setRadioValue('placement_' + x, source_placement);
        document.forms.orderForm['is_cover_'+x].checked = source_is_cover;
    }
}

function checkStepAccountDetails(i,v,oc)
{
    var o = document.getElementById('ordercode');
//    var s = document.getElementById('sofampresent');
    if (o)
    {
        if (o.value == '')
            alert(lcl_specify_order_code);
        else
            document.location.href='orderdetails.php?id='+i+'&key='+v+'&oc='+document.getElementById('ordercode').value;
    }
//    else if (s)
//    {
//        document.location.href='orderdetails.php?id='+i+'&key='+v+'&sofam='+getRadioValue('sofam');
//    }
    else
        document.location.href='orderdetails.php?id='+i+'&key='+v;
}

function showCM()
{
    w = screen.width;
    h = screen.height;
    window.open('cmcalc.php', 'cmcalc', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=200,top=' + ( (h/2) - 100) + ',left=' + ( (w/2) - 200));
}

// COMMON
function getRadioValue(n)
{
    var inputs = document.getElementsByTagName('input');
    for (var x=0 ; x<inputs.length ; x++)
    {
        var el = inputs[x];
        if (el.type == 'radio' && el.checked && el.name == n)
            return el.value;
    }
    return false;
}
function setRadioValue(n,v)
{
    var inputs = document.getElementsByTagName('input');
    for (var x=0 ; x<inputs.length ; x++)
    {
        var el = inputs[x];
        if (el.type == 'radio' && el.value == v && el.name == n)
            return el.checked=true;
    }
}
function upperInput(i)
{
    i.value = i.value.toUpperCase();
}

var toevoegBerichtGetoond = false;
function voegToeAanBestelmandje(photo)
{
	new Ajax.Request('/data/php/frontend.actions.php',
	{
		method:'post'
	   ,parameters: {action: 'order-addphototoshoppingbasket', photos_to_add: photo}
	   ,onSuccess: function(transport) {
			if ( !toevoegBerichtGetoond )
			{
				toevoegBerichtGetoond = true;
				$('toevoegbericht-fotonaam').innerHTML = $('photoname-' + photo).innerHTML;
				$('toevoegbericht-foto').src = "http://www.vildaphoto.net/assets_thumbs/" + photo + "_m.jpg";
				$('toevoegbericht-bericht').innerHTML = lcl_added_to_shoppingbasket;
				Effect.Appear('toevoegbericht', { duration: .6, afterFinish: function() { setTimeout(verbergToevoegBericht, 2000); } });
				Effect.Pulsate('m-order');
			}
	    }
	});
}

function voegMeerdereToeAanBestelmandje(photos)
{
	new Ajax.Request('/data/php/frontend.actions.php',
	{
		method:'post'
	   ,parameters: {action: 'order-addphototoshoppingbasket', photos_to_add: photos}
	   ,onSuccess: function(transport) {
			if ( !toevoegBerichtGetoond )
			{
				toevoegBerichtGetoond = true;
				$('toevoegbericht-fotonaam').innerHTML = '';
				$('toevoegbericht-foto').src = '/data/images/frontend/spacer.gif';
				$('toevoegbericht-bericht').innerHTML = lcl_all_added_to_shoppingbasket;
				Effect.Appear('toevoegbericht', { duration: .6, afterFinish: function() { setTimeout(verbergToevoegBericht, 2000); } });
				Effect.Pulsate('m-order');
			}
	    }
	});
}

function voegToeAanKnipselmap(photo)
{
		new Ajax.Request('/data/php/frontend.actions.php',
		{
			method:'post'
		   ,parameters: {action: 'lightbox-addphoto', photo: photo}
		   ,onSuccess: function(transport) {
				if ( !toevoegBerichtGetoond )
				{
					toevoegBerichtGetoond = true;
					$('toevoegbericht-fotonaam').innerHTML = $('photoname-' + photo).innerHTML;
					$('toevoegbericht-foto').src = "http://www.vildaphoto.net/assets_thumbs/" + photo + "_m.jpg";
					$('toevoegbericht-bericht').innerHTML = lcl_added_to_lightbox;
					Effect.Appear('toevoegbericht', { duration: .6, afterFinish: function() { setTimeout(verbergToevoegBericht, 2000); } });
					Effect.Pulsate('m-lightbox');
				}
			}
		});
}

function verbergToevoegBericht()
{
	Effect.Fade('toevoegbericht', { duration: .4, afterFinish: function () { toevoegBerichtGetoond = false; } });
}

function clearSelect(s)
{
	var obj = document.getElementById(s);
	if ( obj )
	{
		var l = obj.childNodes.length;
		for ( var x = 0 ; x < l ; ++x )
			obj.removeChild(obj.childNodes[0]);
	}				
}

function loadSizes()
{
	for ( var x = 0 ; x < bids.length ; ++x )
	{
		var selectedPlacement = document.getElementById('placement_' + bids[x]).value;
		var mapping = sizemapping[selectedPlacement];
		clearSelect('size_' + bids[x])
		if (mapping)
		{
			for ( var y = 0 ; y < sizes[mapping].length ; ++y )
			{
				var caption = document.createTextNode(sizes[mapping][y]);
				
				var option = document.createElement('option');
				option.value = sizes[mapping][y];
				if ( initialsizes[bids[x]] == sizes[mapping][y])
					option.selected = "selected";
				option.appendChild(caption);
				
				document.getElementById('size_' + bids[x]).appendChild(option);
			}
		}
	}
}

function saveBIDChanges(bid)
{
	initialsizes[bid] = document.getElementById('size_' + bid).value;
	loadSizes();
	var data = { 'placement': document.getElementById('placement_' + bid).value
				,'size': document.getElementById('size_' + bid).value
				,'copies': getRadioValue('copies_' + bid)
				,'cover': (document.getElementById('cover_' + bid).checked)?'Y':'N'
				,'multiple_use': (document.getElementById('multiple_use_' + bid).checked)?'Y':'N'
				,'second_use': (document.getElementById('second_use_' + bid).checked)?'Y':'N'
				,'reprint': (document.getElementById('reprint_' + bid).checked)?'Y':'N'
				,'action': 'order-updatebasketphoto'
				,'bid': bid
			   };
	document.getElementById('copies_100_' + bid).disabled = ( data['placement'] == 10 );
	document.getElementById('copies_2500_' + bid).disabled = ( data['placement'] == 10 );
	document.getElementById('copies_10000_' + bid).disabled = ( data['placement'] == 10 );
	document.getElementById('copies_50000_' + bid).disabled = ( data['placement'] == 10 );
	document.getElementById('copies_50000p_' + bid).disabled = ( data['placement'] == 10 );
	
	new Ajax.Request('/data/php/frontend.actions.php',
	{
		method:'post'
	   ,parameters: data
	   ,onSuccess: function(transport)
	 			   {
						var data = transport.responseText.evalJSON();
						if ( data['status'] != 'success' )
						{
							alert(data['status']);
							document.location.href="/shoppingbasket";
						}
						else
						{
							var prijs = data['price'];
							var bid = data['bid'];
							if ( prijs != "offerte" )
								document.getElementById('price_' + bid).innerHTML = prijs + " €";
							else
								document.getElementById('price_' + bid).innerHTML = prijs;
								
							document.getElementById('subtotal').innerHTML = data['subtotal'];
							document.getElementById('reduction').innerHTML = data['reduction'];
							document.getElementById('reductionpct').innerHTML = data['reductionpct'];
							document.getElementById('vat').innerHTML = data['vat'];
							document.getElementById('total').innerHTML = data['total'];
							if (data['offerte'])
							{
								document.getElementById('offertewarning').style.display='block';
								document.getElementById('offertebtn').style.display='none';
								$('agreement-caption').innerHTML = totalunknownstr;
							}
							else
							{
								document.getElementById('offertewarning').style.display='none';
								document.getElementById('offertebtn').style.display='block';
								$('agreement-caption').innerHTML = totalstr.replace(/%totalprice%/, data['total']) + ' €';
							}
						}
				   }
	});
}

function duplicateSettings()
{
	var masterPlacement = document.getElementById('placement_' + bids[0]).value;
	var masterSize = document.getElementById('size_' + bids[0]).value;
	var masterCopies = getRadioValue('copies_' + bids[0]);
	var masterCover = document.getElementById('cover_' + bids[0]).checked;
	var masterMultipleUse = document.getElementById('multiple_use_' + bids[0]).checked;
	var masterSecondUse = document.getElementById('second_use_' + bids[0]).checked;
	var masterReprint = document.getElementById('reprint_' + bids[0]).checked;
	
	for ( var x = 1 ; x < bids.length ; ++x )
	{
		document.getElementById('placement_' + bids[x]).value = masterPlacement;
		setRadioValue('copies_' + bids[x], masterCopies);
		document.getElementById('cover_' + bids[x]).checked = masterCover;
		document.getElementById('multiple_use_' + bids[x]).checked = masterMultipleUse;
		document.getElementById('second_use_' + bids[x]).checked = masterSecondUse;
		document.getElementById('reprint_' + bids[x]).checked = masterReprint;
	}
	loadSizes();
	for ( var x = 1 ; x < bids.length ; ++x )
	{
		document.getElementById('size_' + bids[x]).value = masterSize;
		saveBIDChanges(bids[x]);
	}
}


function showSizeHelp()
{
	Effect.BlindDown('sizehelp',  { duration: .4, afterFinish: function() { $('sizehelplink').style.display = 'none'; } });
}

function calcOptimal()
{
    var sizes = { 'A2': { 'w': 42, 'h': 59.4 }, 'A3': { 'w': 29.7, 'h': 42 }, 'A4': { 'w': 21, 'h': 29.7 }, 'A5': { 'w': 14.85, 'h': 21 }, 'A6': { 'w': 10.5, 'h': 14.85 }, 'A7': { 'w': 7.4, 'h': 10.5 }, 'A8': { 'w': 5.2, 'h': 7.4 }  }
    var ori = getRadioValue('orientatie');
    var w = document.getElementById('breedte').value;
    var h = document.getElementById('hoogte').value;
    var o = document.getElementById('optimal');
    if (!isNaN(w) && !isNaN(h))
    {
        if (w == '') { w = 0; }
        if (h == '') { h = 0; }
        var aSize = "A2";
        for (s in sizes)
        {
            if (ori == 'portret')
            {
                var a_w = sizes[s]['w'];
                var a_h = sizes[s]['h'];
            }
            else
            {
                var a_w = sizes[s]['h'];
                var a_h = sizes[s]['w'];
            }
            if (w <= a_w && h <= a_h)
                aSize = s;
        }
        o.innerHTML = '<div class="postit">' + o_ok_str.replace(/%s/, aSize) + '</div>';
    }
    else
        o.innerHTML = '<br /><small class="warn">' + o_nok_str + '</small>';
}

function checkContactDetails(showTellerCodeDiv)
{
	if ( showTellerCodeDiv && $('tellercodediv') )
		Effect.BlindUp('basketbuttons', { duration: .4, afterFinish: function () { Effect.Appear('tellercodediv', {duration: .4, afterFinish: function() { Effect.ScrollTo('tellercode', {duration: .3}); $('tellercode').focus(); }}); } });
	else
		Effect.BlindUp('basketbuttons', { duration: .4, afterFinish: function () { Effect.Appear('checkdetails', {duration: .4, afterFinish: function() { Effect.ScrollTo('detailsbuttons', {duration: .3}); }}); } });
}

function enterCommentsAndConfirm()
{
	Effect.BlindUp('detailsbuttons', { duration: .4, afterFinish: function () { Effect.Appear('commentsandconfirmation', {duration: .4, afterFinish: function() { Effect.ScrollTo('confirmbutton', {duration: .3}); }}); } });
	
}

function checkBestelCode()
{
	var tc = '';
	if ( $('tellercode') )
		tc = $('tellercode').value;
	if ( tc == '' )
	{
		$('tellercode').focus();
		return;
	}
	
	new Ajax.Request('/data/php/frontend.actions.php',
	{
		method:'post'
	   ,parameters: {'action': 'order-checkordercode', 'code': tc}
	   ,onSuccess: function(transport)
	 			   {
						var data = transport.responseText.evalJSON();
						if ( data.error == "False" )
						{
							$('tellercodenotfound').style.display = 'none';
							$('tellercode').disabled = "disabled";
							$('tellercode').style.color = "#aaa";
							$('tellercode').value = $('tellercode').value.toUpperCase();
							var str = tellercodeinfo.replace(/%total%/, data.amount);
							str = str.replace(/%available%/, data.left);
							$('tellercodeinfo').innerHTML = str;
							$('codebuttons').style.display = 'none';
							Effect.Appear('tellercodeinfo', {duration: .5, afterFinish: function() {
								 																		if ( bids.length > data.left )
																											Effect.Appear('tellercodewarning', {duration: .4, afterFinish: function() { Effect.ScrollTo('tellercodewarning', {duration: .3}) }});
																										else
																										{
																											$('oc').value = tc;
																											checkContactDetails(false); 
																										}
																								   } });
						}
						else
						{
							Effect.Appear('tellercodenotfound', {duration: .4});
						}
				   }
	});
}

function lookupShareEmail(lightbox)
{
	$('shareemailnotfound').style.display = 'none';
	$('shareemailsuccess').style.display = 'none';
	$('shareemailauto').style.display = 'none';
	$('shareemailduplicate').style.display = 'none';
	var email = $('shareemail').value;
	if ( email && email != '' )
	{
		new Ajax.Request('/data/php/frontend.actions.php',
		{
			method:'post'
		   ,parameters: {'action': 'lightbox-sharelightbox', 'email': email, 'lightbox': lightbox}
		   ,onSuccess: function(transport)
		 			   {
							var data = transport.responseText.evalJSON();
							if ( data['success'] == 0 )
								$('shareemailnotfound').style.display = 'block';
							else if ( data['success'] == 1 )
								$('shareemailsuccess').style.display = 'block';
							else if ( data['success'] == 2 )
								$('shareemailauto').style.display = 'block';
							else if ( data['success'] == 3 )
								$('shareemailduplicate').style.display = 'block';
						}
		});
	}
}

function shareLightbox()
{
	Effect.Appear('shareblock', { afterFinish: function() { $('shareemail').focus(); }});
}

function postLightboxPhotoComment(photo,lightbox)
{
	var comment = $('photocomment-' + photo).value;
	if (comment != "")
	{
		new Ajax.Request('/data/php/frontend.actions.php',
		{
			method:'post'
		   ,parameters: {'action': 'lightbox-addphotocomment', 'photo': photo, 'lightbox': lightbox, 'comment': comment}
		   ,onSuccess: function(transport)
		 			   {
							var data = transport.responseText.evalJSON();
							if ( data.success == "0" )
							{
								$('commentadded-' + photo).style.display = 'block';
							}
							else
							{
								alert('Error adding photo comment.');
							}
					   }
		});		
	}
}

function projectChanged()
{
	if ( $('project').value == 'nieuw' )
	{
		var options = ($$('select#project option'));
		var projectName = prompt(lcl_enter_project_name, '');
		if ( projectName )
		{
			new Ajax.Request('/data/php/frontend.actions.php',
			{
				method:'post'
			   ,parameters: {'action': 'order-addnewproject', 'name': projectName}
			   ,onSuccess: function(transport)
			 			   {
								var data = transport.responseText.evalJSON();
								if ( data.success == "0" )
								{
									if(Prototype.Browser.IE) {
									    var optn = document.createElement("OPTION");
									    optn.text = projectName;
									    optn.value = data.projectid;
									    $('project').options.add(optn, 1);
									}
									else new Insertion.After(options[0], '<option value="'+ data.projectid +'">' + projectName + '</option>');
									$('project').value = data.projectid;
								}
								else
								{
									alert('Error adding project.');
								}
						   }
			});
			
		}
	}
}

