jQuery.fn.swCheckAll = function(mode) {
   var mode = mode || 'on';
   return this.each(function() {
     switch(mode) {
       case 'on':
         this.checked = true;
         break;
       case 'off':
         this.checked = false;
         break;
       case 'toggle':
         this.checked = !this.checked;
         break;
     }
   });
};

function v_PasswordForm( form ) {
	if( form.password.value != form.repeat_password.value ) {
		alert( "Sorry, the passwords entered do not match.\nPerhaps you made a typing mistake?" );
		return false;
	}
	return true;
}

function v_MiniSearch( form ) {
	var q = $(form.q);
	sw.normalizeTextBox( q.get(0) );
	if( !q.val() ) {
		alert("Please enter some search text");
		return false;
	}
	var regex = /^[\w \/\'\"\-\.,*%\+\(\)&]+$/;
	if( !regex.test( q.val() ) ) {
		alert(
			"Your search text contains an invalid character.\n" +
			"Allowed: letters, numbers, spaces and punctuation.\n"
		);
		return false;
	}
	return true;
}

function incInt(id,v) {
	var el = document.getElementById(id);
	if( el ) el.innerHTML = parseInt( el.innerHTML ) + v;
}

function inc(x) { chn('p',true,x); }

function dec(x) { chn('p',false,x); }

function chn(name,add,v) {
	var t = document.getElementById('tt2'+name);
	if( t ) {
		var cv = parseInt( t.innerHTML);
		if( add ) { cv=cv+v; }
		else { cv=cv-v; }
		t.innerHTML = "" + cv;
		upd(name);
	}
}

function upd(name) {
	var tt0 = document.getElementById('tt0'+name);
	var tt1 = document.getElementById('tt1'+name);
	var tt2 = document.getElementById('tt2'+name);
	if( tt0 && tt1 && tt2 ) {
		var v0 = parseInt(tt0.innerHTML);
		var v1 = parseInt(tt1.innerHTML);
		var v2 = parseInt(tt2.innerHTML);
		dbr( name, 100, v0, v1, v2, true );
	}
}

function dbr( name, vmax, v0, v1, vxtra, intOnly ) {
	var totalValue = v0 + v1 + vxtra;
	var maxValue = Math.ceil( (totalValue + 1) / vmax) * vmax;
	var totalWidth = parseInt( document.getElementById('ts'+name).style.width );
	var ew = (v0 / maxValue) * totalWidth;
	var bw = (v1 / maxValue) * totalWidth;
	var xw = (vxtra / maxValue) * totalWidth;
	document.getElementById('tb0'+name).style.width = ew + "px";
	document.getElementById('tb1'+name).style.width = bw + "px";
	document.getElementById('tb2'+name).style.width = xw + "px";
	document.getElementById('tt0'+name).innerHTML = intOnly ? parseInt(v0) : formatCurrency(v0);
	document.getElementById('tt1'+name).innerHTML = intOnly ? parseInt(v1) : formatCurrency(v1);
	document.getElementById('tt2'+name).innerHTML = intOnly ? parseInt(vxtra) : formatCurrency(vxtra);
	document.getElementById('tt3'+name).innerHTML = intOnly ? parseInt(totalValue) : formatCurrency(totalValue);
	document.getElementById('sc1'+name).innerHTML = maxValue/2;
	document.getElementById('sc2'+name).innerHTML = maxValue;
}

function addToBasket( button, p ) {
	$.ajax({
		type: "POST",
		url: $(button).parent().attr('action'),
		data: {},
		success: function(d) {
			var mb=$('#minibasket');
			if( mb ) {
				mb.html(d);
				incInt( 'tt1p', p );
				upd('p');
			}
		},
		error: function(s) { alert(s.responseText); }
	});
	return false;
}

function removeFromMiniBasket(href,p) {
	var mb = $('#minibasket');
	if( mb ) {
		$.post(href,null,function(d){ 
			mb.html( d ); 
			incInt('tt1p',-p);
			upd('p');
		});
	}
	return false;
}

function removeFromSummary(url,p) {
	$.post(url,null,function(d){ 
		$('#jsItemsWrap').html( d ); 
		incInt('tt1p',-p);
		upd('p');
	});
	return false;
}

var THUMB_PREFIX = 'thumb';
function cycleImage( el, wrapDivId ) {
    var jClickedLink = $(el);
	var jWrap = $('#'+wrapDivId);
	var jMainImage = jWrap.find( 'img' );
	var jMainLink = jWrap.find( 'a' );
	if( jMainImage.size() > 0 ) {
		//var re = new RegExp( '^(.*)/(' + THUMB_PREFIX + ')/(\\d+)/(.*)' );
		//var cm = re.exec( jClickedLink.attr('href') );
		//var hm = re.exec( jMainLink.attr('href') );
		//var im = re.exec( jMainImage.attr('src') );
		var clickedImageHref = jClickedLink.attr('href');
		if( clickedImageHref ) {
			//var clickOrigSrc = cm[4];
			//var newMainHref = hm[1]+"/"+hm[2]+"/"+hm[3]+"/"+clickOrigSrc;
			//var newMainSrc = im[1]+"/"+im[2]+"/"+im[3]+"/"+clickOrigSrc;
			var newMainTitle = jClickedLink.attr('title');
			//jMainLink.attr( 'href', newMainHref );
			if( jMainLink.size() > 0 ) jMainLink.attr( 'title', newMainTitle );
			jMainImage.attr( 'src', clickedImageHref );
		}
	}
	else alert('main img not found');
	return false;
}

function zoomImage( href ) {
	return sw.popup( href,800,800 );
}

$(document).ready(function(){
	$('.jsonly').show();
});
