var snapshots = new Array();
var num_adds = 0;

function add_site(bl_name, num, type) {
	var addF = document.forms['addF'];
	var t = parseInt(type);
	var n = parseInt(num);
	var tp = "";
	var inp = "";
	
	if (type == 1) { tp = "file"; inp = "File"; }
	else if (type == 2) { tp = "text"; inp = "Link"; }
	
	prev_num = n - 1;
	bl_name += "_";
	
	par_div=document.getElementById(bl_name+prev_num+"_"+t).parentNode;
	adding_block = document.createElement("div");
	adding_block.id = bl_name + n + "_" + t;
	
	if (bl_name == "loadfoto_") {
	    adding_block.innerHTML = "<div id=loadfoto_"+n+"_"+t+"><table border=0 cellpadding=0 cellspacing=0 id=addf_table_"+n+"_"+t+">"+
	     "<tr><td><div id=\"Div_File_"+n+"_"+t+"\" style=\"margin-left:12px;\"><input type=\""+tp+"\" id=\"File_"+n+"\" name=\"" + inp + "[]\" class=frm></div></td>"+
	     "<td nowrap valign=top style=\"padding-top:4px\" align=left>&nbsp;&nbsp;<a class=\"aaddphoto_"+t+"\" onclick=\"del_pole('"+n+"', '"+t+"'); "+
	     "return false;\" href=\"\">" + lang['del'] + "</a></td></tr></table><div id=add_loadfoto_"+(n+1)+"_"+t+" style=\"font-size:18px;\">&nbsp;&nbsp;"+
	     "<a id=\"aaddphoto_"+t+"\" onclick=\"add_site('loadfoto', '"+(n+1)+"', '"+t+"'); return false;\" href=\"\">" + lang['add_one'] + "</a> &rarr;</div>";
	}
	if (num_adds < 7) {
		num_adds++;
		par_div.appendChild(adding_block);
		document.getElementById("add_" + bl_name + n + "_" + t).style.display = "none";
	}
	else alert(lang['up10'] + ".");
}

function del_pole(num, type) {
	$('#addf_table_' + num + '_' + type).css('display', 'none');
	$('#Div_File_' + num + '_' + type).html('');
	num_adds--;
}

function advanced(elem1, elem2) {
	if ($('#' + elem1).is(':hidden')) {
		$('#' + elem1).css('visibility', 'visible').css('display', 'block');
		$('#' + elem2).css('visibility', 'hidden').css('display', 'none');
	}
}

function bookmarksite(title, url) {
    if (window.sidebar) // firefox
	window.sidebar.addPanel(title, url, "");
    else if(window.opera && window.print)
    { // opera
	var elemn = document.createElement('a');
	elemn.setAttribute('href', url);
	elemn.setAttribute('title', title);
	elemn.setAttribute('rel', 'sidebar');
	elemn.click();
    } 
    else if(document.all)// ie
	window.external.AddFavorite(url, title);
}

function checkpics(f) {
    for (i=1; i<=12; i++) {
	if ($('#filefoto_' + i + '_input').length || $('#filefoto_' + i + '_link').length) {
	    if ($('#filefoto_' + i + '_input').val() || $('#filefoto_' + i + '_link').val()) {
		$('#sbm_button').val(lang['uping'] + '...');

		return true;
	    }
	}
    }

    if (snapshots.length) {
	return true;
    }

    alert(lang['brw_at']);

    return false;
}

$(document).ready(function() {

    $("#delete_animation").click(function(ev) {
	ev.preventDefault();
	
	var href = $(this).attr('href');
	var query_string = href.replace(/\/delete.php\?/, '');
	var params = query_string.split('&');

	var fn = params[0].split('=');
	var hash = params[1].split('=');
	
	var answer = confirm(lang['del_an']+'?');
	
	if (answer)
	{
	    $.ajax({
		type: "GET",
		url: "/delete.php",
		data: "fn="+fn[1]+"&hash="+hash[1],
		success: function(data) {
		    $('#del_anim').html('<span style=\"color:green;font-weight:bold;\">'+lang['del_15']+'</span>');
		}
	    });
	}
    });

    $("a[id^='uploadtype_']").click(function() {
	var str = $(this).attr('id');
	var id = str.replace(/uploadtype_/, "");
	var stop = false;
        
	if (id != 3 && snapshots.length != 0) {
	    snapshots = [];
	    $('#snapshots').html('');
	}	

	$("a[id^='uploadtype_']").css('border-bottom', '1px dotted').css('color', '#667766');
	$("div[id^='uploadtype_']").css('display', 'none');
	$(this).css('color', '#333333').css('border', 'none')
	$("#uploadtype_" + id + "_form").css('display', 'block');

	switch (id) {
	    case '1': $("#animationtype").val('upload'); break;
	    case '2': $("#animationtype").val('link'); break;
	    case '3': $("#animationtype").val('webcam'); break;
	}

	$("a[id^='uploadtype_']").blur();
    });

    var example = "For example, http://google.com/images/logo.png";

    $('input[id=filefoto_1_link]').focus(function() { if ($(this).val() == example) $(this).css('color', 'black').attr('value', ''); });
    $('input[id=filefoto_1_link]').blur(function() { if ($(this).val() == "") $(this).css('color', '#999999').attr('value', example); });

    $('#sbm_button').click(function(ev) {
	var stop = false;

	var evStop = function () {
    	    ev.stopPropagation();
            ev.preventDefault();
        };
        
	if ($('input[id=filefoto_1_link]').val() == example)
	    $('input[id=filefoto_1_link]').val('');

	switch ($('#animationtype').val()) {
	    case 'upload': { $("input[name='Link[]']").each(function() { $(this).val(''); }); break; }
	    case 'link': {
		$("input[name='File[]']").each(function() { $(this).val(''); });

		var alertstr = ""; var c = -1;
		
		$("input[name='Link[]']").each(function() {
		    var link = $(this).val().toLowerCase();

		    if (link) {
			var filename = link.substring(link.lastIndexOf('/') + 1);
			var exploded = filename.split('.');

			var extensions = ['jpg', 'jpeg', 'png', 'bmp', 'gif'];

			if (jQuery.inArray(exploded[1], extensions) == -1) {
			    alertstr += link + "\n";
			    $(this).focus();
			    stop = true;
			    c++;
			}
		    }
		});
		
		if (stop) {
		    var s = ""; ve = "s";
		    if (c) { s = "s"; ve = "ve"; }
		    alert('The link' + s + ' you provided ha' + ve + ' wrong path to image:\n----------\n' + alertstr + '----------\nWe accept only JPG, GIF, PNG or BMP images.');
		}
		
		break;
	    }
	    case 'webcam': {
		$("input[name='File[]']").each(function() { $(this).val(''); });
		$("input[name='Link[]']").each(function() { $(this).val(''); });
		break;
	    }
	}
	
	if (stop) { evStop(); }
    });
});

function checkAdvanced(element) {
    var elem = 'user' + element;

    if ($('#' + elem).is(':hidden') && $('#' + element + 'sel').val() == 'x') {
	$('#' + elem).css('visibility', 'visible').css('display', 'block');
	$('#' + elem + ' input').focus();
    }
    else {
	$('#' + elem).css('visibility', 'hidden').css('display', 'none');
	$('#' + elem + ' input').val('');
    }
}

function loading() {
	if (snapshots.length < 12) {
		$('#snapshots').append('<div id="loader" class="loading"><img src="/images/ajax-loader.gif" style="margin-top:30px;" /></div>');
	}
	else {
		$('#webcam').hide();
		$('#limit').show();
	}

	return false;
}

function addSnapshot(fn) {
	if (snapshots.length < 12) {
		snapshots.push(fn);

		$('#snapshots').append('<div id="' + fn + '" class="frame"><img src="/webcam/snapshots/' + fn + '_sm.jpg" width="120" alt="" /><div class="close"><a href="javascript:delSnapshot(\'' + fn + '\')"><img src="/images/close.gif" width=16 height=16 border=0 alt="" /></a></div><input type=hidden name="Snapshots[]" value="' + fn + '" id="filefoto_' + (snapshots.length) + '_input" /></div>');
		$('#loader').remove();
		$('#' + fn).show('fast');
	}

	return false;
}

function delSnapshot(fn) {
	for (var i=0; i<snapshots.length; i++) {
		if (snapshots[i] == fn)
			snapshots.splice(i, 1);
	}

	if ($('#webcam').is(":hidden")) {
		$('#webcam').show();
		$('#limit').hide();
	}

	$.ajax({
		type: 'POST',
		url: '/webcam/delete.php',
		data: 'sid=' + fn,
		success: function(text) { $('#' + fn).remove(); }
	});
}

function fal() {
	return false;
}

/**
 * jQuery.timers - Timer abstractions for jQuery
 * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
 * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
 * Date: 2009/10/16
 *
 * @author Blair Mitchelmore
 * @version 1.2
 *
 **/

jQuery.fn.extend({
	everyTime: function(interval, label, fn, times) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, times);
		});
	},
	oneTime: function(interval, label, fn) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, 1);
		});
	},
	stopTime: function(label, fn) {
		return this.each(function() {
			jQuery.timer.remove(this, label, fn);
		});
	}
});

jQuery.extend({
	timer: {
		global: [],
		guid: 1,
		dataKey: "jQuery.timer",
		regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
		powers: {
			// Yeah this is major overkill...
			'ms': 1,
			'cs': 10,
			'ds': 100,
			's': 1000,
			'das': 10000,
			'hs': 100000,
			'ks': 1000000
		},
		timeParse: function(value) {
			if (value == undefined || value == null)
				return null;
			var result = this.regex.exec(jQuery.trim(value.toString()));
			if (result[2]) {
				var num = parseFloat(result[1]);
				var mult = this.powers[result[2]] || 1;
				return num * mult;
			} else {
				return value;
			}
		},
		add: function(element, interval, label, fn, times) {
			var counter = 0;
			
			if (jQuery.isFunction(label)) {
				if (!times) 
					times = fn;
				fn = label;
				label = interval;
			}
			
			interval = jQuery.timer.timeParse(interval);

			if (typeof interval != 'number' || isNaN(interval) || interval < 0)
				return;

			if (typeof times != 'number' || isNaN(times) || times < 0) 
				times = 0;
			
			times = times || 0;
			
			var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
			
			if (!timers[label])
				timers[label] = {};
			
			fn.timerID = fn.timerID || this.guid++;
			
			var handler = function() {
				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
					jQuery.timer.remove(element, label, fn);
			};
			
			handler.timerID = fn.timerID;
			
			if (!timers[label][fn.timerID])
				timers[label][fn.timerID] = window.setInterval(handler,interval);
			
			this.global.push( element );
			
		},
		remove: function(element, label, fn) {
			var timers = jQuery.data(element, this.dataKey), ret;
			
			if ( timers ) {
				
				if (!label) {
					for ( label in timers )
						this.remove(element, label, fn);
				} else if ( timers[label] ) {
					if ( fn ) {
						if ( fn.timerID ) {
							window.clearInterval(timers[label][fn.timerID]);
							delete timers[label][fn.timerID];
						}
					} else {
						for ( var fn in timers[label] ) {
							window.clearInterval(timers[label][fn]);
							delete timers[label][fn];
						}
					}
					
					for ( ret in timers[label] ) break;
					if ( !ret ) {
						ret = null;
						delete timers[label];
					}
				}
				
				for ( ret in timers ) break;
				if ( !ret ) 
					jQuery.removeData(element, this.dataKey);
			}
		}
	}
});

jQuery(window).bind("unload", function() {
	jQuery.each(jQuery.timer.global, function(index, item) {
		jQuery.timer.remove(item);
	});
});
