﻿var mainURL = "http://beam-it-up-scotty.com/";
var newFileSize = 0;
var fileType = "";
var uploadDone = false;
var text = "";
var adWordsConversion = '<!-- Google Code for pageview Conversion Page -->'+
'<script language="JavaScript" type="text/javascript">'+
'<!--'+
'var google_conversion_id = 1071919825;'+
'var google_conversion_language = "de";'+
'var google_conversion_format = "2";'+
'var google_conversion_color = "FFFFFF";'+
'if (1) {'+
'  var google_conversion_value = 1;'+
'}'+
'var google_conversion_label = "pageview";'+
'//-->'+
'</script>'+
'<script language="JavaScript" src="http://www.googleadservices.com/pagead/conversion.js">'+
'</script>'+
'<noscript>'+
'<img height=1 width=1 border=0 src="http://www.googleadservices.com/pagead/conversion/1071919825/imp.gif?value=1&label=pageview&script=0">'+
'</noscript>';

function findeOL(obj,dir){
	var oLPos=0;
	var o=dir?'offsetLeft':'offsetTop';
	if(obj.offsetParent){
		while(obj.offsetParent){
			oLPos+=obj[o];
			obj=obj.offsetParent;
		}
		oLPos+=document.body[o];
	}
	else if(obj.x)oLPos+=dir?obj.x:obj.y;
	return oLPos;
} 

function showInfoBox(target, anker) {
	$('music_info').hide();
	$('video_info').hide();
	$('images_info').hide();
	$('text_info').hide();
	var pxtop = findeOL($(anker),false);
	var pxleft = findeOL($(anker),true);
	$(target).setStyle({top: pxtop+15+'px', left: pxleft-310+'px'});
	//$(target).show();
	new Effect.Appear(target,{ duration:0.1, to:1 });
	//alert(pxtop);
}

// check radiobuttons
function checkradio(feld){
	for (i=0; i<feld.length; i++){
			if(feld[i].checked == true){
				return feld[i].value;
			}
	}
}

function tFix(wert,ds){
	var wert=(wert.toFixed)?wert.toFixed(ds):
        Math.floor(wert) + "." + (Math.pow(10,ds) + Math.round((wert-Math.floor(wert)) * Math.pow(10,ds)) + "").substr(1,ds);
	return wert;
}

// set approx. FileSize for converted file
function setFilesize() {
	radiovalue = checkradio(document.getElementsByName('convertOptions'));
	if (radiovalue == "nochange") {
		newFileSize = tFix(total_Kbytes/1024, 2) + " MB";
		setDownloadTime(total_Kbytes);
	} else {
		switch(fileType) {
			case "image":
				newFileSize = "approx. " + tFix(ftype[1]/1024, 2) + " MB";
				setDownloadTime(ftype[1]);
				break;
				
			case "video":
				if (radiovalue == "3gphigh") {
					// Calculate file size using 30 kilobyte/s
					newFileSize = "approx. " + tFix(ftype[1] * 30 / 1024, 2) + " MB";
					setDownloadTime(ftype[1] * 30);
				} else if (radiovalue == "iphone") {
					// Calculate file size using 19 kilobyte/s
					newFileSize = "approx. " + tFix(ftype[1] * 19 / 1024, 2) + " MB";
					setDownloadTime(ftype[1] * 19);
				} else {
					// Calculate file size using 10 kilobyte/s
					newFileSize = "approx. " + tFix(ftype[1] * 10 / 1024, 2) + " MB";
					setDownloadTime(ftype[1] * 10);
				}
				break;
				
			case "audio":
				if (radiovalue == "mp3-128") {
					// calculate using 16 kilobytes/s
					newFileSize = "approx. " + tFix(ftype[1] * 16 / 1024, 2) + " MB";
					setDownloadTime(ftype[1] * 16);
				}
				else {
					// calculate using 4 kilobytes/s
					newFileSize = "approx. " + tFix(ftype[1] * 4 / 1024, 2) + " MB";
					setDownloadTime(ftype[1] * 4);
				}
				break;
				
			case "text":
				newFileSize = "approx. " + tFix(ftype[1] / 1024 / 1024, 2) + " MB";
				setDownloadTime(ftype[1] / 1024);
				break;
			case "unknown":
				newFileSize = "approx. " + tFix(ftype[1] / 1024 / 1024, 2) + " MB";
				setDownloadTime(ftype[1] / 1024);
				break;
		}
	}
	$('newfilesize').innerHTML = newFileSize;
}

function sendEmail(m,file,org_file,o){
 
//erstellen des requests
var req = null;

try{
  req = new XMLHttpRequest();
}
catch (ms){
  try{
	req = new ActiveXObject("Msxml2.XMLHTTP");
  } 
  catch (nonms){
	try{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	} 
	catch (failed){
		req = null;
	}
  }
}

if (req == null)
  alert("Error creating request object!");

req.open("POST", mainURL+'sendmail.php', true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send("email="+ m + "&file="+ file + "&org_file="+ org_file + "&option="+ o + "&ln=de");

// Antwort bearbeiten
req.onreadystatechange = function(){            
  switch(req.readyState) {
	case 4:
		if(req.status!=200) {
			alert("Fehler:"+req.status); 
		} else {
			$('loadingSMS').hide();
			resp = req.responseText.split(",");
			switch (resp[0]) {
				case "1":
					verified();
					//text = 'Die SMS wird in Kürze an <strong>'+nr+'</strong> versendet.<br />'+adWordsConversion;
					text = 'Um die Datei herunterzuladenm, gib bitte folgende URL im Browser deines Handys ein:<br /><strong>http://beam-it.com/dl/'+resp[1]+'/</strong><br />'+adWordsConversion;
					popup(text,true);
					tm_conversionName = "69";
					tm_tracker(tm_conversionName);
					break;
				
				case "3": case "4":
					popup("Du darfst heute keine SMS mehr schicken. Bitte probier es morgen noch einmal.",false);
					$('statusSend').setStyle({background: 'url(images/cellphone-notallowed.gif) no-repeat right'});
					tm_conversionName = "70";
					tm_tracker(tm_conversionName);
					break;
					
				case "9":
					popup("Dieser Empfänger darf heute keine SMS mehr empfangen. Bitte probier es morgen noch einmal.",false);
					$('statusSend').setStyle({background: 'url(images/cellphone-notallowed.gif) no-repeat right'});
					tm_conversionName = "70";
					tm_tracker(tm_conversionName);
					break;
				
				case "100":
					$('email').disabled=true;
					text = 'Die Verifizierungs-E-Mail wurde verschickt. Bitte prüf deinen E-Mail Account. Wenn die E-Mail Adresse verifiziert wurde, bekommst du den Download-Link! <br /><strong>Sollte unsere Mail nicht ankommen, schau bitte auch in deinem Spam-Ordner nach.</strong>';
					$('statusSend').setStyle({background: 'url(images/cellphone-ok.jpg) no-repeat right'});
					popup(text,true);
					tm_conversionName = "71";
					tm_tracker(tm_conversionName);
					break;
					
				case "111":
					//$('email').disabled=true;
					//$('email').disabled=true;
					//Element.setStyle('email',{'background-color':'#CBF5C5'});
					$('statusSend').setStyle({background: 'url(images/cellphone-ok.jpg) no-repeat right'});
					//$('statusEmail').setStyle({background: 'url(images/email-ok.jpg) no-repeat right'});
					//text = 'Deine Datei wird konvertiert! Sobald die Konvertierung fertig ist, schicken wir die SMS an: <strong>'+nr+'</strong>.<br />'+adWordsConversion;
					text = 'Deine Datei wird konvertiert! Bitte gib folgende URL in einigen Minuten im Browser deines Handys ein:<br /><strong>http://beam-it.com/dl/'+resp[1]+'/</strong><br />'+adWordsConversion;
					popup(text, true);
					var tm_conversionName = "72";
					tm_tracker(tm_conversionName);
					break;
				
				case "333":
					//$('mailStatus').innerHTML = "Your email has been verified.";
					popup("Fehler beim Verschicken der Verifizierungs-E-Mail: "+ m +". Bitte prüf die Adresse oder versuch es später noch einmal.");
					$('statusSend').setStyle({background: 'url(images/cellphone-error.gif) no-repeat right'});
					var tm_conversionName = "76";
					tm_tracker(tm_conversionName);
					break;
					
				case "21":
					popup("Deine E-Mail Adresse ist auf der Blacklist. Für weitere Informationen schick uns bitte eine E-Mail.");
					$('statusSend').setStyle({background: 'url(images/cellphone-error.gif) no-repeat right'});
					var tm_conversionName = "77";
					tm_tracker(tm_conversionName);
					break;
					
				case "22":
					popup("Dieser Empfänger ist auf der Blacklist. Für weitere Informationen schick uns bitte eine E-Mail.");
					$('statusSend').setStyle({background: 'url(images/cellphone-error.gif) no-repeat right'});
					var tm_conversionName = "77";
					tm_tracker(tm_conversionName);
					break;
					
				default:
					//$('mailStatus').innerHTML = "Your email has been verified.";
					popup("Fehler beim Versenden der SMS. Bitte versuch es später noch einmal.");
					$('statusSend').setStyle({background: 'url(images/cellphone-error.gif) no-repeat right'});
					var tm_conversionName = "73";
					tm_tracker(tm_conversionName);
					break;
			}
			//alert(req.responseText);
		}
		break;

		default:
			return false;
		break;     
	}
};
}

// Funktion zum Anzeigen des Popup Feldes mit Nachricht
function popup(txt,reLoad) {
	currentURL = window.location.href;
	if (currentURL.indexOf("?") > -1)
		currentURL = currentURL.substr(0, currentURL.indexOf("?"));
	if (reLoad == true)
		closeButton = '<br /><a href="javascript:;" onclick="new Effect.Fade(\'popup\',{ duration:0.3 });window.location.href=\'' + currentURL + '\';">Meldung schließen</a>';
	else
		closeButton = '<br /><a href="javascript:;" onclick="new Effect.Fade(\'popup\',{ duration:0.3 });">Meldung schließen</a>';
	$('popup').innerHTML = "<p>" + txt + "</p>" + closeButton;
	new Effect.Appear('popup', { duration:0.3 });
}

// Email Adresse ist verifiziert
function verified() {
	$('statusSend').setStyle({background: 'url(images/cellphone-ok.jpg) no-repeat right'});
	$('statusChoose').setStyle({background: 'url(images/compression-ok.jpg) no-repeat right'});
	//$('statusEmail').setStyle({background: 'url(images/email-ok.jpg) no-repeat right'});
}

// check for a valid email adress
function checkMail(s) {
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_\\+]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }
 return(res);
}

// check for valid mobile number
function checkNr(s) {
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  s = s.replace(/[^0-9\+]/g, "");
  reg = new RegExp('^(\\+|00)[0-9]{6,14}$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('^(\\+|00)[0-9]{6,14}$') >= 1);
 }
 return(res)
}

function confirmEmail() {
	hideError("mailStatus","termsCheckbox");
	if ($("termsCheckbox").checked == false) {
		showError("mailStatus","Du musst unsere AGBs akzeptieren um den Service zu nutzen.","termsCheckbox");
	error = true;
	} else {
		
		var m = $('email').value;
		var error = false;
		
		if (checkMail(m)) {
		  hideError("mailStatus","email");
		  new Effect.Fade('emailstep', { duration:0.3 });
		  send();
		} else {
			showError("mailStatus","Bitte gib eine gültige E-Mail Adresse ein!","email");
			error = true;
		}
	}
}

function send() {
	var m = $('email').value;
	//var n = $('number').value;
	var error = false;
	var tmp = $('uploadField').value;
	var endung = tmp.substr(tmp.lastIndexOf("."));
	var file = file_id+endung;
	if(tmp.lastIndexOf("/")!=-1)
		var org_file = tmp.substr(tmp.lastIndexOf("/")+1);
	else
		var org_file = tmp.substr(tmp.lastIndexOf("\\")+1);

	// upload schon fertig?
	if ( !uploadDone ) {
		showError("uploadStatus","Bitte lade zuerst eine Datei hoch!","uploadField")
	  	error = true;
	} else {
		hideError("uploadStatus","uploadField");
	}
	
	/*if (checkNr(n)) {
 	  n = n.replace(/\+/g, "00");
	  n = n.replace(/[^0-9]/g, "");
	  hideError("nrStatus","number");
	} else {
	  showError("nrStatus","Bitte gib eine gültige Handynummer ein (mit intern. Ländercode, z.B.. 0049 für Deutschland)!","number")
	  error = true;
	}
	*/
	if (typeof checkradio(document.getElementsByName('convertOptions')) != "undefined") {
	  hideError("chooseError");
	} else {
	  showError("chooseError","Bitte wähle aus ob die Datei komprimiert werden soll!")
	  error = true;
	}
	
	if (!checkMail(m) && !error) {
		new Effect.Appear('emailstep', { duration:0.3 });
		error = true;
	}
	
	if (!error) {
		// eventhandler entfernen
		$('sendButton').onclick = null;
		$('sendButton').hide();
		o = checkradio(document.getElementsByName('convertOptions'));
		$('loadingSMS').show();
		sendEmail(m,file,org_file,o);
		//alert("alles super");
	}
}

// displays specified error box
function showError(t,m,z) {
  $(t).update(m);
  $(t).show();
  if(typeof z!="undefined")
	$(z).setStyle({border: '1px solid red'});
}

// hides specified error box
function hideError(t,z) {
  $(t).hide();
  if(typeof z!="undefined")
	$(z).setStyle({border: 'none'});
}

function showResponse(originalRequest) {
	//put returned XML in the textarea
	if (originalRequest.responseText == "1") {
		new Effect.BlindUp('verifyField');
		new Effect.Fade('mailStatus');
		verified();
	} else {
		$('mailStatus').setStyle({color: 'red'});
		$('mailStatus').innerHTML = 'There has been an error verifying your Code. Please try again.';
	}
	//alert(originalRequest.responseText);
}

// typ der hochgeladenen datei herausfinden
function getFileType() {
	$('compression').setStyle({backgroundImage: 'url(images/compression2.jpg)'});
	$('cellphone').setStyle({backgroundImage: 'url(images/get_link.jpg)'});
	$('choose2').hide();
	$('choose1').show();
	$('number2').hide();
	$('number1').show();
	$('default').innerHTML = "Analysing file...";
	$('loadingType').show();
	var url = mainURL+'getFileType.php';
	var tmp = $('uploadField').value;
	var endung = tmp.substr(tmp.lastIndexOf("."));
	var file = file_id+endung;
	var pars = 'file=' + file;
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			parameters: pars, 
			onComplete: setFileOptions
		});
}

// dem dateityp entsprechende optionen anzeigen
function setFileOptions(originalRequest) {
	$('default').hide();
	$('loadingType').hide();
	ftype = originalRequest.responseText.split(",");
	fileType = ftype[0];
	newFileSize = ftype[1];
	
	switch (ftype[0]) {
		case "image":
			$('picOptions').show();
			$('picOptions2').show();
			$('vidOptions').hide();
			$('vidOptions2').hide();
			$('audioOptions').hide();
			$('audioOptions2').hide();
			$('docOptions').hide();
			$('docOptions2').hide();
			$('auxOptions').hide();
			$('auxOptions2').hide();
			$('pic_1').checked = true;
			
			newFileSize = "approx. " + tFix(ftype[1]/1024, 2) + " MB";
			setDownloadTime(ftype[1]);
			break;
			
		case "audio":
			$('picOptions').hide();
			$('picOptions2').hide();
			$('vidOptions').hide();
			$('vidOptions2').hide();
			$('audioOptions').show();
			$('audioOptions2').show();
			$('docOptions').hide();
			$('docOptions2').hide();
			$('auxOptions').hide();
			$('auxOptions2').hide();
			$('audio_1').checked = true;
			
			// calculate using 4 kilobytes/s
			newFileSize = "approx. " + tFix(ftype[1] * 4 / 1024, 2) + " MB";
			setDownloadTime(ftype[1] * 4);
			break;
			
		case "video":
			$('picOptions').hide();
			$('picOptions2').hide();
			$('vidOptions').show();
			$('vidOptions2').show();
			$('audioOptions').hide();
			$('audioOptions2').hide();
			$('docOptions').hide();
			$('docOptions2').hide();
			$('auxOptions').hide();
			$('auxOptions2').hide();
			$('vid_1').checked = true;
			
			// Calculate file size using 10 kilobyte/s
			newFileSize = "approx. " + tFix(ftype[1] * 10 / 1024, 2) + " MB";
			setDownloadTime(ftype[1] * 10);
			break;
		
		case "text":
			$('picOptions').hide();
			$('picOptions2').hide();
			$('vidOptions').hide();
			$('vidOptions2').hide();
			$('audioOptions').hide();
			$('audioOptions2').hide();
			$('docOptions').show();
			$('docOptions2').show();
			$('auxOptions').hide();
			$('auxOptions2').hide();
			$('doc_1').checked = true;
			
			newFileSize = "approx. " + tFix(ftype[1] / 1024 / 1024, 2) + " MB";
			setDownloadTime(ftype[1] / 1024);
			break;
			
		default:
			$('picOptions').hide();
			$('picOptions2').hide();
			$('vidOptions').hide();
			$('vidOptions2').hide();
			$('audioOptions').hide();
			$('audioOptions2').hide();
			$('docOptions').hide();
			$('docOptions2').hide();
			$('auxOptions').show();
			$('auxOptions2').show();
			$('aux_1').checked = true;
			
			newFileSize = "approx. " + tFix(ftype[1] / 1024 / 1024, 2) + " MB";
			setDownloadTime(ftype[1] / 1024);
			break;
	}
	$('newfilesize').innerHTML = newFileSize;
	$('statusChoose').setStyle({background: 'url(images/compression-ok.jpg) no-repeat right'});
}

// setzt die Angaben fuer die geschaetzte Download Zeit
function setDownloadTime(t) {
	// UMTS = ca. 60 KB/sec
	var time = tFix(t / 60 / 60, 0);
	if (time > 0)
		$('umts').innerHTML = time;
	else
		$('umts').innerHTML = "<1";
	// EDGE = ca. 15 KB/sec
	time = tFix(t / 15 / 60, 0);
	if (time > 0)
		$('edge').innerHTML = time;
	else
		$('edge').innerHTML = "<1";
	// GPRS = ca. 3 KB/sec
	time = tFix(t / 3 / 60, 0);
	if (time > 0)
		$('gprs').innerHTML = time;
	else
		$('gprs').innerHTML = "<1";
}