var C=navigator.userAgent.toLowerCase();
jQuery.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],codeversion:(C.match(/.+(?:firefox)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),chrome:/chrome/.test(navigator.userAgent.toLowerCase()),firefox:/firefox/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};

var dialog;
var dimmer;
var uploadType;
$(document).ready(
		function() {
			dimmer = new Dimmer();
			dialog = new Dialog();
			dialog.init();
			var UseFlash = 0;
			var UserDisableFlash = 0;

			if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] )
			{
				var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
				if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-2))>=3 )
					UseFlash = 1;
				else
					UserDisableFlash = 1;
			}
			else if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1
				&& navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1)
			{
				UseFlash = 2;
			}
			var type = ENV.SwitchToType;
			switch(type)
			{
				default:
				case "AUTO":

					var nVer = $.browser.version.substring(0, 5).replace(/\./g, '');
					var cVer = $.browser.codeversion.substring(0, 5).replace(/\./g, '');
					//alert(dump($.browser));
					if ( UseFlash && !UserDisableFlash )
					{
						if (
							($.browser.firefox && $.browser.mozilla && cVer <= 36) || // Mozilla/Firefox less than 3.6.*
							($.browser.msie && nVer <= 90) || // MSIE less than 9.0
							($.browser.opera && nVer >= 90) // Opera more than 9.0
						 )
						{
							switchUploaders('flash');
							try
							{
								setTimeout(function(){
									if ( $.browser.msie ) 
										var oType = $("#uploadifyUploader").attr("classid");
									else
										var oType = $("#uploadifyUploader").attr("type");
									if ( typeof oType == 'undefined' || oType == "" )
									{
										var paramName = $($("#uploadifyUploader param").get(1)).attr("name");
										if ( typeof paramName == 'undefined' || paramName == "" )
										{
											switchUploaders('fake', true);
											return;
										}
										switchUploaders('fake', true);
										return;
									}
								}, 1000);
							} catch(e) {}
						}
						else
						{
							switchUploaders('fake');
						}
							
					}
					else if (!(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0))
					{
						switchUploaders('fake');
					}
                    else
                    {
                        switchUploaders('fake', true);
                    }

					break;

				case "FLASH": if ( !UseFlash ) return; switchUploaders('flash'); break;
				case "FAKE": switchUploaders('fake'); break;
			}
	}
);

function switchUploaders(to, removeAlien)
{
	if ( isMob == 'true' ) to = 'fake';
	if ( 'flash' == to )
	{
		$("#side2").hide();
		$("#side1").show();
		createUploadify();
	}
	if ( 'fake' == to )
	{
		$("#side1").hide();
		$("#side2").show();
		createUploader();
		if ( removeAlien ) $("#side1").remove();
	}

	uploadType = to;
}

function createUploader(onlyInitCore)
{
	setAdvancedEvents('FAKE');
	var uploader = new qq.FileUploader({
		onlyInitCore		: onlyInitCore,
		element				: (!onlyInitCore) ? $('#file-uploader').get(0) : $('#file-uploader-flash').get(0),
		action				: ENV.uploaderScript,
		frmAction			: ENV.uploaderScript,
		multiple			: ENV.isMultiple,
		limitFiles			: ENV.limitFiles,
		limit				: ENV.limitFiles,
		allowedExtensions	: ENV.Extensions,
		sizeLimit			: ENV.SizeLimit,
		rmPreviosInput		: false,
		debug				: true,
		onAllComplete		: function(event, data) {
					   if ( qq._count(qq._fileBuff) > 0 ) return;
					   if ( !isAllComplete() ) return;
                       $("#parameters").html(converthtml);
                       setTimeout('$("#accordion").accordion("activate",1);',500);
                       enableconvert = true;
                       $("#convertpane h3").fadeTo(250,1);
                       $("#parameters").load('/parameters.html?folder=' + getFolder() + '&rnd=' + Math.random());
                       current = 2;
                     }
	});
	if ( isMob == 'true' ) 
		setTimeout(function(){$("form[name=form_frame_1], img.buttons_110").remove()}, 800);

	setTimeout(function(){backToUpload()}, 1000);
}

function createUploadify()
{
	setAdvancedEvents('FLASH');
	$("#uploadify").uploadify({
		uploader	: ENV.swfScript,
		script		: ENV.uploaderScript,
		cancelImg	: ENV.pathToImages + '/upl/cancel.png',
		folder		: folder,
		buttonImg	: ENV.pathToImages + '/upl/browse-files.png',
		wmode		: 'transparent',
		width		: 110,
		height		: 30,
		queueID		: 'fileQueue',
		multi		: true,
		sizeLimit	: ENV.SizeLimit,
		scriptAccess: 'always',
		queueSizeLimit: ENV.limitFiles,
		fileExt		: converterFileExt,
		onSelect	: function(j,h,i){ return qq._flashValidateFile(j,h,i); },
		onComplete	: function(k,h,j,i,l){ return qq._flashUploaderQueue(h); },
		onError		: function(l,h,k,j){ return qq._flashUploaderError(l,h,k,j); },
		onCancel	: function(l,h,k,m,j){ return qq._flashRemoveFromQueue(h); },
		onAllComplete: function(event, data) {
					   if ( qq._count(qq._fileBuff) > 0 ) return;
					   if ( !isAllComplete() ) return;
                       $("#parameters").html(converthtml);
                       setTimeout('$("#accordion").accordion("activate",1);',500);
                       enableconvert = true;
                       $("#convertpane h3").fadeTo(250,1);
                       $("#parameters").load('/parameters.html?folder=' + getFolder() + '&rnd=' + Math.random());
                       current = 2;
                     },
		onOpen		: function(event,queueID,fileObj) {
                      //disablepanes();
                     },
		onSelectOnce: function(event,data) {
						//$('#uploadify').uploadifyClearQueue();
						$("#uploadify").uploadifySettings('folder', folder);
                     }
	});
	setTimeout(function(){createUploader(true);}, 800);
}

function isAllComplete()
{
	var res = "";
	var req = $.ajax({url:'/parameters.html?folder='+folder,async:false,type:'GET'});
	if ( req.status == 200 ) {
		res = $.trim(req.responseText);
	}
	if ( res == "Wrong parameters [4].") return false;
	if ( res.substr(0, 5) == "Wrong" ) return false;
	if ( res.indexOf('filesNum = 0') != -1 ) return false;
	return true;
}

function getFolder()
{
	return ((folder) ? folder : $("#folder").val());
}

function setAdvancedEvents(upType)
{
	folder = $("#folder").val();

	$("#accordion").accordion({
		'header'         : "h3",
		'autoHeight'     : false,
		'change'         : function() {setTimeout('setheight();',500);}
		});

	$("#uploadpane h3 a, #convertpane h3 a, #downloadpane h3 a").attr("href", "javascript:void(0)");
	$("#uploadpane h3, #convertpane h3, #downloadpane h3").unbind("click");

	$("#uploadpane h3, #uploadpane h3 a, #uploadpane h3 span").bind("click",function (){
		if ( stopclicks ) return false;
		$("#accordion").accordion("activate",0);
		current = 1;/*
		if ( upType == 'FLASH' ) {
			$('#uploadify').uploadifyClearQueue();
		}*/
		if ( upType == 'FAKE' ) globSelf._clearQueueUpload();
		return true;
		});

	$("#convertpane h3, #convertpane h3 a, #convertpane h3 span").bind("click",function (){
		if (stopclicks) { return false; }
		if ( !filesNum ) return false;
		if (enableconvert) {
			if (current == 1) { 
				if ( upType == 'FLASH' ) $('#uploadify').uploadifyClearQueue();
				if ( upType == 'FAKE' ) globSelf._clearQueueUpload();
			}
			$("#accordion").accordion("activate",1);
			current = 2;
		}
		return enableconvert;
		});

	$("#downloadpane h3, #downloadpane h3 a, #downloadpane h3 span").bind("click",function (){
		if (stopclicks) { return false; }
		if ( !filesNum ) return false;
		if (enabledownload) {
			if (current == 1) {
                if ( upType == 'FLASH' ) $('#uploadify').uploadifyClearQueue();
                if ( upType == 'FAKE' ) globSelf._clearQueueUpload();
            }
			$("#accordion").accordion("activate",2);
			current = 3;
		}
		return enabledownload;
		});


	disablepanes();
	savepanes();
	setheight();
}

function converterReady() {

}

function setupDownloadSteps()
{
	$("#downloadZipped a#sendLink").click(
		function(){
			var Email = $.trim($("#inEmail").val());
			if ( isEmail(Email) ) {
				$.ajax({
					url: '/sendemail.html',
					type: 'POST',
					data: 'email='+Email,
					success: function(data){
						alert($.trim(data));
					},
					error: function(){
						alert("Connection error.");
					}
				});
			} else {
				alert("Please enter a correct/real E-mail.");
			}
		}
	);
}

function isEmail(email)
{
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^[a-zA-Z0-9\\-\\.\\_]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$");
	return (!r1.test(email) && r2.test(email));
}

