Advertisement
Guest User

Untitled

a guest
Apr 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.06 KB | None | 0 0
  1. var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
  2. var left_scene_id = 0;
  3. var right_scene_id = 0;
  4. var default_scene_id = 0;
  5. var position_array = new Array();
  6.  
  7.  
  8. /*function uploadFile(file){
  9. document.partners.upload_file.value = file;
  10. document.partners.submit_action.value = "Submit";
  11. document.partners.submit();
  12. }
  13.  
  14. function deleteFile(file){
  15. document.partners.delete_file.value = file;
  16. document.partners.submit_action.value = "Submit";
  17. document.partners.submit();
  18. } */
  19. var W3CDOM = (document.createElement && document.getElementsByTagName);
  20.  
  21. function protoAjax(url,params,helperFunction) {
  22. params = params + '&rand=' + Math.floor(Math.random() * 1000000000);
  23. var ajaxRequest = new Ajax.Request(url, {
  24. parameters: params,
  25. asynchronous: false,
  26. onSuccess: helperFunction,
  27. onFailure: function () {
  28. alert(url);
  29. }
  30. });
  31. }
  32.  
  33. function fetchSceneCount(cid, pid) {
  34. protoAjax('partners_edit.php?mode=settings&partnerid='+pid+'&sceneCount='+cid, '', updateSceneCount);
  35. }
  36.  
  37. function updateSceneCount(json) {
  38. var data = json.responseText.parseJSON();
  39. parent.parent.document.getElementById('cid' + data.cid).innerHTML = data.count;
  40. }
  41.  
  42. function callVokiScene(sceneId, update) {
  43. if (update) {
  44. var params = 'partnerid=' + glob_partnerid + '&cid=' + glob_cid + '&upsid=' +sceneId;
  45. protoAjax(location.protocol + '//' + location.hostname + '/partners/admin/modal_config_scenes.php?' + params, params, updateVokiScene);
  46. } else {
  47. var params = 'partnerid=' + glob_partnerid + '&cid=' + glob_cid + '&sid=' +sceneId;
  48. protoAjax(location.protocol + '//' + location.hostname + '/partners/admin/modal_config_scenes.php?' + params, params, addVokiScene);
  49. }
  50. }
  51.  
  52. function addVokiScene(json) {
  53. var text = $('scenes').innerHTML;
  54. var data = json.responseText.parseJSON();
  55. $('scenes').innerHTML = text +
  56. '<div class="scene" id="scene_' + data.sid + '">' +
  57. '<div align="center">' +
  58. '<div class="thumb">' +
  59. '<a href="#" onClick="window.open(\'' + data.link + '\', \'partner\', ' + '\'width=570,height=500,resizable\')">' +
  60. '<img src="' + data.thumb + '" /></a>' +
  61. '</div></div>' + ( (data.title == '' || data.title == 'null' || data.title == 'undefined' || !data.title || data.title === null) ? 'unnamed' : data.title ) + '<br />' +
  62. '<a href="javascript:void(0);" onClick="window.open(\'' + data.link + '\', \'partner\', ' + '\'width=570,height=500,resizable\')">Edit</a>&nbsp;' +
  63. '<a href="javascript:void(0);" onClick="deleteVokiScene(' + data.sid + ')">delete</a>' +
  64. '</div>';
  65. }
  66.  
  67. function updateVokiScene(json) {
  68. location.reload();
  69. /*var timestamp = (new Date()).getTime();
  70. var data = json.responseText.parseJSON();
  71. $(data.sid).remove();
  72.  
  73. var text = document.getElementById('scenes').innerHTML;
  74. //alert(json.responseText);
  75.  
  76. document.getElementById('scenes').innerHTML = text +
  77. '<div class="scene" id="scene_' + data.sid + '">' +
  78. '<div align="center">' +
  79. '<div class="thumb">' +
  80. '<a href="#" onClick="window.open(\'' + data.link + '\', \'partner\', ' + '\'width=570,height=500,resizable\')">' +
  81. '<img src="' + data.thumb + '?' + timestamp + '" /></a>' +
  82. '</div></div>' + data.title + '<br />' +
  83. '<a href="javascript:void(0);" onClick="window.open(\'' + data.link + '\', \'partner\', ' + '\'width=570,height=500,resizable\')">Edit</a>&nbsp;' +
  84. '<a href="javascript:void(0);" onClick="deleteVokiScene(' + data.sid + ')">delete</a>' +
  85. '</div>';*/
  86. }
  87.  
  88. function deleteVokiScene(sid) {
  89. var params = 'partnerid=' + glob_partnerid + '&sid=' + sid + '&cid=' + glob_cid + '&action=delete';
  90. protoAjax('modal_config_scenes.php?' + params, params, hide_deleted_scene);
  91. }
  92.  
  93. function hide_deleted_scene(json) {
  94. var data = json.responseText.parseJSON();
  95. $( 'scene_' + data.sid ).remove();
  96. }
  97.  
  98. function editVokiApp(vokiapp, partnerid){
  99. document.location="vokiapps_edit.php?&vokiapp=" + vokiapp + "&partnerid=" + partnerid;
  100. }
  101.  
  102. function doDelete(vokiappid){
  103. if (!confirm("Are you sure you want to delete this Voki App?"))
  104. return;
  105. document.vokiapps.submit_action.value = "delete_" + vokiappid;
  106. document.vokiapps.submit();
  107. }
  108.  
  109. function filter(partnerid) {
  110. var url = "partners_edit.php?mode=vokiapps&partnerid=" + partnerid + "&apptype=" +
  111. document.vokiapps.vokiappsFilterByApp.value;
  112.  
  113. if (document.vokiapps.vokiappsFilterByPartner) {
  114. url = url + "&prt=" + document.vokiapps.vokiappsFilterByPartner.value;
  115. }
  116. document.location = url;
  117. }
  118.  
  119. function doUpdate() {
  120. if (adObj) {
  121. for (a in adObj) {
  122. ajaxAdSave(a,0);
  123. }
  124. }
  125. document.vokiapps.submit_action.value = "update";
  126. document.vokiapps.submit();
  127. }
  128.  
  129. function doCancel() {
  130. document.vokiapps.submit_action.value = "cancel";
  131. document.vokiapps.submit();
  132. }
  133.  
  134. function doPreview() {
  135. document.vokiapps.submit_action.value = "preview";
  136. document.vokiapps.submit();
  137. }
  138.  
  139. function doUpload() {
  140. document.vokiapps.submit_action.value = "upload";
  141. document.vokiapps.submit();
  142. }
  143.  
  144. function getAjaxObj() {
  145. var req = false;
  146. if (window.XMLHttpRequest) {// if Mozilla, Safari etc
  147. try {
  148. req = new XMLHttpRequest();
  149. } catch (e) {
  150. }
  151. } else if (window.ActiveXObject) {// if IE
  152. try {
  153. req = new ActiveXObject("Msxml2.XMLHTTP");
  154. } catch (e) {
  155. try{
  156. req = new ActiveXObject("Microsoft.XMLHTTP");
  157. } catch (e) {
  158. }
  159. }
  160. }
  161. return req;
  162. }
  163.  
  164. function ajaxPost(url,params,helperFunc) {
  165. var req = getAjaxObj();
  166. if (!req) return;
  167. var method = (params) ? 'POST' : 'GET';
  168. req.open(method,url,true);
  169. req.setRequestHeader('User-Agent','XMLHTTP/1.0');
  170. if (method == 'POST') {
  171. req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  172. }
  173. req.onreadystatechange = function () {
  174. if (req.readyState != 4) return;
  175. if (helperFunc) {
  176. helperFunc(req);
  177. }
  178. return;
  179. };
  180. if (req.readyState == 4) return;
  181. req.send(params);
  182. }
  183.  
  184. var logo, banner, bg, logoImg, bannerImg, bgIMg, deleteLogo, deleteBanner, deleteBg;
  185. function initImageObjs() {
  186. logo = new Image();
  187. banner = new Image();
  188. bg = new Image();
  189. logoImg = document.getElementById('logoImg');
  190. bannerImg = document.getElementById('bannerImg');
  191. bgImg = document.getElementById('bgImg');
  192. deleteLogo = document.getElementById('deleteLogo');
  193. deleteBanner = document.getElementById('deleteBanner');
  194. deleteBg = document.getElementById('deleteBack');
  195. }
  196.  
  197. function initImageFunctions() {
  198. logo.onerror = function () {
  199. logoImg.style.display = 'none';
  200. deleteLogo.className = 'btn_gray_125';
  201. deleteLogo.disabled = true;
  202. };
  203. logo.onload = function () {
  204. logoImg.src = logo.src;
  205. logoImg.style.height = 65 + 'px';
  206. logoImg.style.display = 'block';
  207. };
  208. banner.onerror = function () {
  209. bannerImg.style.display = 'none';
  210. deleteBanner.className = 'btn_gray_125';
  211. deleteBanner.disabled = true;
  212. };
  213. banner.onload = function () {
  214. bannerImg.src = banner.src;
  215. bannerImg.style.width = 292 + 'px';
  216. bannerImg.style.display = 'block';
  217. };
  218. bg.onerror = function () {
  219. bgImg.style.display = 'none';
  220. deleteBg.className = 'btn_gray_125';
  221. deleteBg.disabled = true;
  222. };
  223. bg.onload = function () {
  224. bgImg.src = bg.src;
  225. bgImg.style.width = Math.ceil((bg.width/4)) + 'px';
  226. bgImg.style.height = Math.ceil((bg.height/4)) + 'px';
  227. bgImg.style.display = 'block';
  228. };
  229. }
  230.  
  231. function loadImages(logoSrc,bannerSrc,bgSrc) {
  232. var date = new Date();
  233. var timestamp = date.getTime();
  234. var partnerid = document.vokiapps.partnerid.value;
  235. var vokiappid = document.vokiapps.vokiAppId.value;
  236. logo.src = logoSrc + '?' + timestamp + '&partnerid=' + partnerid + '&vokiapp=' + vokiappid;
  237. banner.src = bannerSrc + '?' + timestamp + '&partnerid=' + partnerid + '&vokiapp=' + vokiappid;
  238. bg.src = bgSrc + '?' + timestamp + '&partnerid=' + partnerid + '&vokiapp=' + vokiappid;
  239. }
  240.  
  241. function deleteLogoImg(req) {
  242. if (req.responseText == 'ok') {
  243. logoImg.style.display = 'none';
  244. deleteLogo.className = 'btn_gray_125';
  245. deleteLogo.disabled = true;
  246. }
  247. }
  248.  
  249. function deleteBannerImg(req) {
  250. if (req.responseText == 'ok') {
  251. bannerImg.style.display = 'none';
  252. deleteBanner.className = 'btn_gray_125';
  253. deleteBanner.disabled = true;
  254. }
  255. }
  256.  
  257. function deleteBackgroundImg(req) {
  258. if (req.responseText == 'ok') {
  259. bgImg.style.display = 'none';
  260. deleteBg.className = 'btn_gray_125';
  261. deleteBg.disabled = true;
  262. }
  263. }
  264.  
  265. function launchEditor(appType,side,edit) {
  266. if (appType == 'Face Off') {
  267. if (side.indexOf('left') != -1) {
  268. if (edit == 0) {
  269. window.open(leftCreateUrl,'partner', 'width=570,height=500,resizable');
  270. } else {
  271. window.open(leftEditorUrl,'partner', 'width=570,height=500,resizable');
  272. }
  273. } else {
  274. if (edit == 0) {
  275. window.open(rightCreateUrl,'partner', 'width=570,height=500,resizable');
  276. } else {
  277. window.open(rightEditorUrl,'partner', 'width=570,height=500,resizable');
  278. }
  279. }
  280. } else {
  281. if (edit == 0) {
  282. window.open(createUrl,'partner', 'width=570,height=500,resizable');
  283. } else {
  284. window.open(editorUrl,'partner', 'width=570,height=500,resizable');
  285. }
  286. }
  287. }
  288.  
  289. function initDefaultScenes(theId) {
  290. var createButton = document.getElementById('create_' + theId);
  291. var editButton = document.getElementById('edit_' + theId);
  292. var deleteButton = document.getElementById('delete_' + theId);
  293. var thumbImg = document.getElementById('defaultThumb_' + theId);
  294. var imgField = document.getElementById('thumbVal_' + theId);
  295. var sceneField = document.getElementById('sceneID_' + theId);
  296.  
  297. if (sceneField.value != 0) {
  298. createButton.className = 'btn_gray_125';
  299. createButton.disabled = true;
  300. editButton.className = 'btn_blue_125';
  301. editButton.disabled = false;
  302. deleteButton.className = 'btn_green_125';
  303. deleteButton.disabled = false;
  304. }
  305. }
  306.  
  307. function deleteDefault(theId) {
  308. var createButton = document.getElementById('create_' + theId);
  309. var editButton = document.getElementById('edit_' + theId);
  310. var deleteButton = document.getElementById('delete_' + theId);
  311. var thumbImg = document.getElementById('defaultThumb_' + theId);
  312. var imgField = document.getElementById('thumbVal_' + theId);
  313. var sceneField = document.getElementById('sceneID_' + theId);
  314.  
  315. createButton.className = 'btn_blue_125';
  316. createButton.disabled = false;
  317. thumbImg.innerHTML = '<img src="../images/silhouette_50.jpg" />';
  318. editButton.className = 'btn_gray_125';
  319. editButton.disabled = true;
  320. deleteButton.className = 'btn_gray_125';
  321. deleteButton.disabled = true;
  322. imgField.value = '../images/silhouette_50.jpg';
  323. sceneField.value = 0;
  324. doUpload();
  325. }
  326.  
  327. function showSaved() {
  328. document.getElementById('message').innerHTML = 'Saved.';
  329. }
  330.  
  331. function show_preview(URL) {
  332. if ( document.vokiapps.preview.value == "yes" ) {
  333. day = new Date();
  334. id = day.getTime();
  335. eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=screen.width,height=screen.height');");
  336. }
  337. }
  338.  
  339. function grabQueryValue(theKey) {
  340. var vals = location.search.split('&');
  341. for (i=0;i<vals.length;i++) {
  342. var val = vals[i].split('=');
  343. if (val[0].indexOf(theKey) != -1) {
  344. theVal = val[1];
  345. break;
  346. } else {
  347. theVal = '';
  348. }
  349. }
  350. return theVal;
  351. }
  352.  
  353. function changeCSSLink() {
  354. var selected = document.getElementById('style_select').selectedIndex;
  355. var theId = document.getElementById('style_select').options[selected].value;
  356. var theLink = document.getElementById('editCSSlink').href;
  357. var idloc = theLink.lastIndexOf('loadstyle=');
  358. theLink = theLink.slice(0, idloc);
  359.  
  360. document.getElementById('editCSSlink').href = theLink + 'loadstyle='+ theId;
  361. decoGreyboxLinks();
  362. }
  363.  
  364. function checkOptions() {
  365. var theSelect = document.getElementById('style_select');
  366. var options = theSelect.options;
  367. var optionPresent = false;
  368. for (i=0;i<options.length;i++) {
  369. if (options[i].value == '0') {
  370. theSelect.selectedIndex = i;
  371. optionPresent = true;
  372. changeCSSLink();
  373. break;
  374. }
  375. }
  376. if (!optionPresent) {
  377. var changeCSS = new Option('Customized Style', '0', true, true);
  378. theSelect.add(changeCSS,null);
  379. changeCSSLink();
  380. }
  381. }
  382.  
  383. function submitChangePassword() {
  384. var oldp = document.changepass.oldpass.value;
  385. var newp = document.changepass.newpass.value;
  386. var newp2 = document.changepass.newpass2.value;
  387. var prt = document.changepass.partnerid.value;
  388.  
  389. if (newp != newp2) {
  390. document.getElementById('message').innerHTML = "The two passwords do not match. Please try again.";
  391. document.changepass.newpass.value = '';
  392. document.changepass.newpass2.value = '';
  393. return false;
  394. }
  395.  
  396. var params = 'save=1&old=' + oldp + '&new='+ newp + '&partnerid=' + prt;
  397.  
  398. ajaxPost('modal_change_password.php?' + params,params,ChangePasswordResponse);
  399. }
  400.  
  401. function ChangePasswordResponse(resp) {
  402. var text = resp.responseText;
  403. if (text == 'success') {
  404. document.getElementById('message').innerHTML = "<strong>Password changed. Click 'Close' to finish.</strong>";
  405. }
  406. else {
  407. document.getElementById('message').innerHTML = text;
  408. }
  409. }
  410.  
  411. //universal parse JSON function
  412. (function (s) {
  413. var m = {
  414. '\b': '\\b',
  415. '\t': '\\t',
  416. '\n': '\\n',
  417. '\f': '\\f',
  418. '\r': '\\r',
  419. '"' : '\\"',
  420. '\\': '\\\\'
  421. };
  422.  
  423. s.parseJSON = function (filter) {
  424. try {
  425. if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.
  426. test(this)) {
  427.  
  428. var j = eval('(' + this + ')');
  429.  
  430. if (typeof filter === 'function') {
  431.  
  432. function walk(k, v) {
  433. if (v && typeof v === 'object') {
  434. for (var i in v) {
  435. if (v.hasOwnProperty(i)) {
  436. v[i] = walk(i, v[i]);
  437. }
  438. }
  439. }
  440. return filter(k, v);
  441. }
  442.  
  443. j = walk('', j);
  444. }
  445. return j;
  446. }
  447. } catch (e) {
  448.  
  449. }
  450. throw new SyntaxError("parseJSON");
  451. };
  452. }
  453. ) (String.prototype);
  454.  
  455. //ad admin tool functions
  456. function initAdManage(typeFilter) {
  457. if (!typeFilter) typeFilter = 0;
  458. var partnerId = document.vokiapps.partnerid.value;
  459. var urlStr = location.protocol + '//' + location.hostname + '/partners/admin/json_ads.php?';
  460. var params = 'action=getall&partnerid=' + partnerId ;
  461. protoAjax(urlStr + params, params, showAdManage);
  462. }
  463.  
  464. var appObj = false;
  465. function showAdManage(req) {
  466. if (!req.responseText || req.responseText == '[]') return;
  467. typeFilter = document.vokiapps.select_type.options[document.vokiapps.select_type.selectedIndex].value;
  468. appObj = req.responseText.parseJSON();
  469. var ads = $('ads');
  470. ads.innerHTML = '';
  471. var adTable = document.createElement('table');
  472. var adTableBody = document.createElement('tbody');
  473. adTable.appendChild(adTableBody);
  474. for (app in appObj) {
  475. if ( appObj[app].typeid != typeFilter && parseInt(typeFilter, 10) != 0 ) { continue; }
  476.  
  477. var trTitle = document.createElement('tr');
  478. trTitle.style.color = 'white';
  479. trTitle.style.backgroundColor = '#999';
  480. var appTitle = document.createElement('td');
  481. appTitle.style.padding = '2px';
  482. appTitle.innerHTML = '<b>Application Name:</b> ' + appObj[app].name + ' | <b>Application Type</b>: ' + appObj[app].type;
  483. trTitle.appendChild(appTitle);
  484. var dimensionHead = document.createElement('td');
  485. dimensionHead.innerHTML = '<b>Dimensions</b>';
  486. dimensionHead.style.padding = '2px';
  487. trTitle.appendChild(dimensionHead);
  488. var typeHead = document.createElement('td');
  489. typeHead.innerHTML = '<b>Ad Type</b>';
  490. typeHead.style.padding = '2px';
  491. trTitle.appendChild(typeHead);
  492. adTableBody.appendChild(trTitle);
  493.  
  494. adObj = appObj[app].ads;
  495. for (position in adObj) {
  496. var tr = document.createElement('tr');
  497.  
  498. var adTd = document.createElement('td');
  499. adTd.innerHTML = '<b>Ad ' + position + ':</b>';
  500. adTd.style.padding = '4px';
  501. for (adType in adObj[position]) {
  502. if ((adObj[position][adType].ads && adObj[position][adType].ads != 'none') && (adObj[position][adType].selected || adObj[position][adType].selected == 0)) {
  503. if(!$('selectAd_' + app + '_' + position)) {
  504. var inputSelect = createSelect(position,adType,'select_' +app + '_' + position + '_' + adType);
  505. adTd.appendChild(inputSelect);
  506. break;
  507. }
  508. }
  509. }
  510. tr.appendChild(adTd);
  511.  
  512. for (adType in adObj[position]) {
  513. if(adObj[position][adType].selected || adObj[position][adType].selected ==0) {
  514. var dimensionTd = document.createElement('td');
  515. dimensionTd.innerHTML = adObj[position][adType].width + ' x ' + adObj[position][adType].height;
  516. tr.appendChild(dimensionTd);
  517. var typeTd = document.createElement('td');
  518. typeTd.innerHTML = adObj[position][adType].type_title;
  519. tr.appendChild(typeTd);
  520. }
  521. }
  522. adTableBody.appendChild(tr);
  523. }
  524. }
  525. ads.appendChild(adTable);
  526. }
  527.  
  528. function initAdRep(typeFilter) {
  529. if (!typeFilter) typeFilter = 0;
  530. var partnerId = document.vokiapps.partnerid.value;
  531. var urlStr = location.protocol + '//' + location.hostname + '/partners/admin/json_ads.php?';
  532. var params = 'action=listads&partnerid=' + partnerId;
  533. protoAjax(urlStr + params, params, showAdRep);
  534. }
  535.  
  536. function showAdRep(req) {
  537. if (!req.responseText || req.responseText == '[]') return;
  538. typeFilter = document.vokiapps.type_filter.options[document.vokiapps.type_filter.selectedIndex].value;
  539. var ads = $('ads');
  540. ads.innerHTML = '';
  541. var adTable = document.createElement('table');
  542. var adTableBody = document.createElement('tbody');
  543. adTable.appendChild(adTableBody);
  544. var headerRow = document.createElement('tr');
  545. headerRow.style.background = '#999';
  546. headerRow.style.color = 'white';
  547. var defaultTd = document.createElement('td');
  548. defaultTd.innerHTML = '<b>Default</b>';
  549. defaultTd.style.padding = '2px';
  550. headerRow.appendChild(defaultTd);
  551. var nameTd = document.createElement('td');
  552. nameTd.innerHTML = '<b>Ad Name</b>';
  553. nameTd.style.padding = '2px';
  554. headerRow.appendChild(nameTd);
  555. var dimensionTd = document.createElement('td');
  556. dimensionTd.innerHTML = '<b>Dimensions</b>';
  557. dimensionTd.style.padding = '2px';
  558. headerRow.appendChild(dimensionTd);
  559. var editTd = document.createElement('td');
  560. editTd.innerHTML = '<b>Edit</b>';
  561. editTd.style.padding = '2px';
  562. headerRow.appendChild(editTd);
  563. adTableBody.appendChild(headerRow);
  564. var manageObj = req.responseText.parseJSON();
  565. for (ad in manageObj) {
  566. if ( manageObj[ad].ad_type_id != typeFilter && parseInt(typeFilter, 10) != 0 ) { continue; }
  567. var tr = document.createElement('tr');
  568.  
  569. var adCheckTd = document.createElement('td');
  570. var adCheck = document.createElement('input');
  571. adCheck.type = 'checkbox';
  572. adCheck.name = 'dimension_default_' + manageObj[ad].id;
  573. adCheck.id = 'dimension_default_' + manageObj[ad].id;
  574. adCheckTd.appendChild(adCheck);
  575. if (manageObj[ad].def) {
  576. adCheck.checked = true;
  577. }
  578. adCheck.disabled = true;
  579.  
  580. var checkLabel = document.createElement('span');
  581. checkLabel.innerHTML = 'Dimension Default';
  582. adCheckTd.appendChild(checkLabel);
  583. tr.appendChild(adCheckTd);
  584.  
  585. var adNameTd = document.createElement('td');
  586. var adName = document.createElement('span');
  587. adName.style.display = 'inline';
  588. adName.style.margin = '0 5px 0 5px';
  589. adName.innerHTML = manageObj[ad].name;
  590. adNameTd.appendChild(adName);
  591. tr.appendChild(adNameTd);
  592.  
  593. var adDimensionTd = document.createElement('td');
  594. var adDimension = document.createElement('span');
  595. adDimension.style.display = 'inline';
  596. adDimension.style.margin = '0 5px 0 5px';
  597. adDimension.innerHTML = manageObj[ad].dimension;
  598. adDimensionTd.appendChild(adDimension);
  599. tr.appendChild(adDimensionTd);
  600.  
  601. var editTd = document.createElement('td');
  602. var editButton = createEdit(ad,manageObj[ad].ad_type_id);
  603. editTd.appendChild(editButton);
  604. tr.appendChild(editTd);
  605.  
  606. adTableBody.appendChild(tr);
  607. }
  608. ads.appendChild(adTable);
  609. }
  610.  
  611. function createEdit(ad,typeId) {
  612. var editButton = document.createElement('a');
  613. editButton.innerHTML = 'Edit';
  614. editButton.href = 'javascript:void(0)';
  615. editButton.onclick = function () { createNewAd('edit',{"ad": ad , "typeId" : typeId}); };
  616. return editButton;
  617. }
  618.  
  619. function initAdObj( div_id ) {
  620. document.getElementById( div_id ).innerHTML = '';
  621. var appId = document.vokiapps.vokiAppId.value;
  622. var partnerId = document.vokiapps.partnerid.value;
  623. if (document.vokiapps.layout) {
  624. var layout = document.vokiapps.layout;
  625. if (layout.length) {
  626. for(i=0;i<layout.length;i++) {
  627. if (layout[i].checked == true) {
  628. var layoutId = layout[i].value;
  629. }
  630. }
  631. } else {
  632. var layoutId = document.vokiapps.layout.value;
  633. }
  634. }
  635. var urlStr = location.protocol + '//' + location.hostname + '/partners/admin/json_ads.php?';
  636. var params = 'action=getad&lid=' + layoutId + '&partnerid=' + partnerId + '&app=' + appId + '&preview=1';
  637. protoAjax(urlStr + params, params, showAdObj);
  638. }
  639.  
  640. var adObj = false;
  641. var isSelected = false;
  642. function showAdObj(req) {
  643. if (!req.responseText || req.responseText == '[]') return;
  644. adObj = req.responseText.parseJSON();
  645. if (adObj) {
  646. var ads = $('ads');
  647. ads.style.border = '1px solid black';
  648. var adTable = document.createElement('table');
  649. var adTableBody = document.createElement('tbody');
  650. adTable.appendChild(adTableBody);
  651.  
  652. var headerTr = document.createElement('tr');
  653. headerTr.style.background = '#999';
  654. headerTr.style.color = 'white';
  655. var adHeaderTd = document.createElement('td');
  656. adHeaderTd.innerHTML = '<b>Ad #</b>';
  657. headerTr.appendChild(adHeaderTd);
  658. var selectHeaderTd = document.createElement('td');
  659. selectHeaderTd.innerHTML = '<b>Select Ad</b>';
  660. headerTr.appendChild(selectHeaderTd);
  661. var dimensionHeaderTd = document.createElement('td');
  662. dimensionHeaderTd.innerHTML = '<b>Dimensions</b>';
  663. headerTr.appendChild(dimensionHeaderTd);
  664. if (window.ActiveXObject) {
  665. var radioHeaderTd = document.createElement('<td colspan="3">')
  666. } else {
  667. var radioHeaderTd = document.createElement('td');
  668. radioHeaderTd.setAttribute('colspan',3);
  669. }
  670. radioHeaderTd.innerHTML = '<b>Ad Type</b>';
  671. headerTr.appendChild(radioHeaderTd);
  672. adTableBody.appendChild(headerTr);
  673.  
  674. for (position in adObj) {
  675. var inputSelect = false;
  676. var tr = document.createElement('tr');
  677. var adTd = document.createElement('td');
  678. adTd.innerHTML = '<b>Ad ' + position + ':</b>';
  679. tr.appendChild(adTd);
  680. var selectTd = document.createElement('td');
  681. for (adType in adObj[position]) {
  682. if ((adObj[position][adType].ads && adObj[position][adType].ads != 'none') && (adObj[position][adType].selected || adObj[position][adType].selected == 0)) {
  683. if(!$('selectAd_' + position)) {
  684. inputSelect = createSelect(position,adType);
  685. selectTd.appendChild(inputSelect);
  686. break;
  687. }
  688. }
  689. if (adType == 4 || adType == '4') {
  690. if(!$('selectAd_' + position)) {
  691. inputSelect = createSelect(position,adType);
  692. selectTd.appendChild(inputSelect);
  693. inputSelect.style.display = 'none';
  694. break;
  695. }
  696. }
  697. }
  698. for (adType in adObj[position]) {
  699. if(adObj[position][adType].ads == 'none') {
  700. if (!$('create_' + position)) {
  701. var butt = createButton(position,adType);
  702. selectTd.appendChild(butt);
  703. if ((adType == 4 || adType == '4') || (inputSelect && inputSelect.style.display != 'none')) {
  704. butt.style.display = 'none';
  705. }
  706. break;
  707. }
  708. }
  709. }
  710. for (adType in adObj[position]) {
  711. if(adObj[position][adType].ads == 'none' && (adType == 4 || adType == '4') && (adObj[position][adType].selected || adObj[position][adType].selected == 0)) {
  712. butt.style.display = 'none';
  713. break;
  714. }
  715. }
  716. tr.appendChild(selectTd);
  717. for (adType in adObj[position]) {
  718. if(adObj[position][adType].selected || adObj[position][adType].selected == 0) {
  719. var dimensionSpan = createSpan(position,adType);
  720. var dimensionTd = document.createElement('td');
  721. dimensionTd.appendChild(dimensionSpan);
  722. break;
  723. }
  724. }
  725. tr.appendChild(dimensionTd);
  726. var numRadios = 0;
  727. for (adType in adObj[position]) {
  728. numRadios++;
  729. if(adObj[position][adType].selected || adObj[position][adType].selected == 0) {
  730. var checked = 'checked';
  731. isSelected = true;
  732. } else {
  733. var checked = '';
  734. }
  735. var inputRadio = createRadio('radioAd_' + position + '_' + adType, 'radioAd_' + position, adType,checked);
  736. var radioLabel = createLabel('radioAd_' + position + '_' + adType, adObj[position][adType].type_title);
  737. var radioTd = document.createElement('td');
  738. radioTd.appendChild(inputRadio);
  739. radioTd.appendChild(radioLabel);
  740. tr.appendChild(radioTd);
  741. }
  742. if (numRadios == 1) {
  743. inputRadio.style.display = 'none';
  744. }
  745. if (!isSelected) {
  746. document.vokiapps.elements['radioAd_' + position][0].checked = true;
  747. }
  748. adTableBody.appendChild(tr);
  749. }
  750. ads.appendChild(adTable);
  751. }
  752. }
  753.  
  754. function createAdRow(id) {
  755. var divRow = document.createElement('div');
  756. divRow.id = 'divRow' + id;
  757. divRow.style.display = 'block';
  758. divRow.style.margin = '4px';
  759. divRow.style.padding = '4px';
  760. var re = new RegExp(/(\d+)$/);
  761. var ad_position = re.exec(id);
  762. divRow.innerHTML = '<b>Ad ' + ad_position[0] + ':</b>';
  763. return divRow;
  764. }
  765.  
  766. function createRadio(id, name, value, checked) {
  767. if (window.ActiveXObject) {
  768. var inputRadio = document.createElement('<input type="radio" name="' + name + '" id="' + id + '" value="' + value + '" ' + checked + ' />');
  769. } else {
  770. var inputRadio = document.createElement('input');
  771. inputRadio.type = 'radio';
  772. inputRadio.id = id;
  773. inputRadio.name = name;
  774. inputRadio.value = value;
  775. inputRadio.style.margin = '0 0 0 4px';
  776. if(checked == 'checked') {
  777. inputRadio.checked = true;
  778. }
  779. }
  780. inputRadio.onclick = function () {changeAdSelect(id);};
  781. return inputRadio;
  782. }
  783.  
  784. function createLabel(target,text) {
  785. if (window.ActiveXObject) {
  786. var radioLabel = document.createElement('<label for="' + target + '">');
  787. } else {
  788. var radioLabel = document.createElement('label');
  789. radioLabel.setAttribute('for',target);
  790. }
  791. radioLabel.innerHTML = text;
  792. return radioLabel;
  793. }
  794.  
  795. function createSpan(position,adType) {
  796. var dimensionSpan = document.createElement('span');
  797. dimensionSpan.id = 'dimensions_' + position;
  798. dimensionSpan.innerHTML = adObj[position][adType].width + ' x ' + adObj[position][adType].height;
  799. dimensionSpan.style.margin = '0 2px 0 2px';
  800. return dimensionSpan;
  801. }
  802.  
  803. function createCreate() {
  804. var createOption = document.createElement('option');
  805. createOption.innerHTML = 'Create New';
  806. createOption.value = 'create';
  807. return createOption;
  808. }
  809.  
  810. function createButton(position,adType) {
  811. var createButton = document.createElement('input');
  812. createButton.type = 'button';
  813. createButton.value = 'Create New';
  814. createButton.id = 'create_' + position;
  815. createButton.onclick = function () {createNewAd('default',{'position' : position , 'adType' : adType});};
  816. return createButton;
  817. }
  818.  
  819. function createSelect(position,adType,id) {
  820. var inputSelect = document.createElement('select');
  821. inputSelect.style.width = '150px';
  822. inputSelect.style.margin = '0 4px 0 4px';
  823. if (!id) {
  824. id = 'selectAd_' + position;
  825. var createOption = createCreate();
  826. inputSelect.appendChild(createOption);
  827. inputSelect.onchange = function () { ajaxAdSave(position,1); };
  828. } else {
  829. inputSelect.onchange = function () { ajaxSaveAdFromRep(id,0); };
  830. }
  831. inputSelect.name = id;
  832. inputSelect.id = id;
  833. for (adNum in adObj[position][adType].ads) {
  834. if(!isNaN(parseInt(adNum, 10)) ) {
  835. var selectOption = document.createElement('option');
  836. selectOption.value = adNum;
  837. selectOption.innerHTML = adObj[position][adType].ads[adNum];
  838. inputSelect.appendChild(selectOption);
  839. }
  840. }
  841. if (adObj[position][adType].selected || adObj[position][adType].selected == 0) {
  842. for (j=0;j<inputSelect.options.length;j++) {
  843. if (inputSelect.options[j].value == adObj[position][adType].selected) {
  844. inputSelect.selectedIndex = j;
  845. }
  846. }
  847. } else {
  848. inputSelect.selectedIndex = 1;
  849. }
  850. return inputSelect;
  851. }
  852.  
  853. function changeAdSelect(id) {
  854. var vals = id.split('_');
  855. var position = vals[1];
  856. var adType = vals[2];
  857. $('dimensions_' + position).innerHTML = adObj[position][adType].width + ' x ' + adObj[position][adType].height;
  858. var inputSelect = $('selectAd_' + position);
  859. var butt = $('create_' + position);
  860. if(adObj[position][adType].ads == 'none') {
  861. butt.style.display = 'inline';
  862. if(inputSelect) inputSelect.style.display = 'none';
  863. butt.disabled = false;
  864. if (adType == '4' || adType == 4) {
  865. butt.disabled = true;
  866. }
  867. butt.onclick = function () {createNewAd('default',{'position' : position , 'adType' : adType});};
  868. } else {
  869. if(butt) butt.style.display = 'none';
  870. if (inputSelect) inputSelect.style.display = 'inline';
  871. }
  872. if (adObj[position][adType].ads && adObj[position][adType].ads != 'none') {
  873. inputSelect.options.length = 0;
  874. inputSelect.disabled = false;
  875. var createOption = createCreate();
  876. inputSelect.appendChild(createOption);
  877. for (adNum in adObj[position][adType].ads) {
  878. if(!isNaN(parseInt(adNum, 10))) {
  879. var selectOption = document.createElement('option');
  880. selectOption.value = adNum;
  881. selectOption.innerHTML = adObj[position][adType].ads[adNum];
  882. inputSelect.appendChild(selectOption);
  883. }
  884. }
  885. } else {
  886. if(inputSelect) inputSelect.disabled = true;
  887. }
  888. if (adObj[position][adType].selected) {
  889. for (j=0;j<inputSelect.options.length;j++) {
  890. if (inputSelect.options[j].value == adObj[position][adType].selected) {
  891. inputSelect.selectedIndex = j;
  892. }
  893. }
  894. } else {
  895. if(inputSelect) inputSelect.selectedIndex = 1;
  896. }
  897. ajaxAdSave(position,1);
  898. }
  899.  
  900. function createNewAd(mode,vals) {
  901. var partnerid = document.vokiapps.partnerid.value;
  902. switch (mode) {
  903. case 'create' :
  904. var params = 'mode=' + mode + '&partnerid=' + partnerid;
  905. if (vals) {
  906. params = params + '&enum=' + vals['position'];
  907. }
  908. break;
  909.  
  910. case 'edit' :
  911. var params = 'mode=' + mode + '&partnerid=' + partnerid + '&ad=' + vals['ad'] + '&type=' + vals['typeId'];
  912. break;
  913.  
  914. default:
  915. var theDefault = adObj[vals['position']][vals['adType']]['default'];
  916. if(!theDefault) theDefault = 0;
  917. var params = 'mode=' + mode + '&partnerid=' + partnerid + '&enum=' + vals['position'] + '&type=' + vals['adType'] + '&default=' + theDefault;
  918. break;
  919. }
  920.  
  921. var urlStr = location.protocol + '//' + location.hostname + '/partners/admin/modal_savead.php?' + params;
  922. GB_showCenter('Create New Ad', urlStr, 300, 330);
  923. }
  924.  
  925. function ajaxSaveAdFromRep(id,prev) {
  926. var partnerid = top.document.vokiapps.partnerid;
  927. var vals = id.split('_');
  928. var appId = vals[1];
  929. var position = vals[2];
  930. var adType = vals[3];
  931. var adId = $(id).options[$(id).selectedIndex].value;
  932. var urlStr = 'json_ads.php?partnerid=' + partnerid + '&action=selectad&app=' + appId + '&enum=' + position + '&ad=' + adId + '&type=' + adType + '&preview=' + prev;
  933. protoAjax(urlStr,'','');
  934. }
  935.  
  936. function ajaxAdSave(position,prev) {
  937. if(!adObj) return;
  938. var appId = document.vokiapps.vokiAppId.value;
  939. var partnerid = document.vokiapps.partnerid.value;
  940. var inputSelect = document.getElementById('selectAd_' + position);
  941. if (inputSelect) {
  942. var adId = inputSelect.options[inputSelect.selectedIndex].value;
  943. } else {
  944. var adId = 0;
  945. }
  946. if(document.vokiapps.elements['radioAd_' + position]) {
  947. if(document.vokiapps.elements['radioAd_' + position].length) {
  948. for (i=0;i<document.vokiapps.elements['radioAd_' + position].length;i++) {
  949. if(document.vokiapps.elements['radioAd_' + position][i].checked) {
  950. var adType = document.vokiapps.elements['radioAd_' + position][i].value;
  951. }
  952. }
  953. } else {
  954. var adType = document.vokiapps.elements['radioAd_' + position].value;
  955. }
  956. }
  957. if (adId == 'create') {
  958. createNewAd('createbydim', {"position":position, "adType":adType} );
  959. return;
  960. }
  961. if (adType == '4' || adType == 4) {
  962. adId = -1;
  963. }
  964. if (prev) {
  965. var urlStr = 'json_ads.php?partnerid=' + partnerid + '&action=selectad&app=' + appId + '&enum=' + position + '&ad=' + adId + '&type=' + adType + '&preview=' + prev;
  966. } else {
  967. var urlStr = 'json_ads.php?partnerid=' + partnerid + '&action=selectad&app=' + appId + '&enum=' + position + '&ad=' + adId + '&type=' + adType;
  968. }
  969. protoAjax(urlStr,'','');
  970. }
  971.  
  972. function saveNewAd(mode) {
  973. var partnerid = document.savead.partnerid.value;
  974. var adname = document.savead.adname.value.strip();
  975. var embed = escape(document.savead.embedcode.value.strip());
  976. embed= embed.replace(/\+/,'%2B');
  977.  
  978. var useasdefault = document.savead.useasdefault.checked;
  979. if (useasdefault) {
  980. useasdefault = 1;
  981. } else {
  982. useasdefault = 0;
  983. }
  984. if ( !embed || !adname ) {
  985. alert('Please input all the fields.');
  986. return;
  987. }
  988. var appId = top.document.vokiapps.vokiAppId.value;
  989. var ad = document.savead.ad.value;
  990. switch (mode) {
  991. case 'edit':
  992. var typeId = grabQueryValue('type');
  993. var params = 'action=savead&partnerid=' + partnerid + '&type=' + typeId + '&name=' + adname + '&embed=' + embed + '&default=' + useasdefault + '&ad=' + ad ;
  994. var callback = handleEditCreate;
  995. break;
  996.  
  997. case 'create':
  998. var position = document.savead['enum'].value;
  999. var types = document.savead.type_select.options[document.savead.type_select.selectedIndex].value;
  1000. var vals = types.split('_');
  1001. var typeId = vals[0];
  1002. //useasdefault = vals[1];
  1003. var params = 'action=savead&partnerid=' + partnerid + '&type=' + typeId + '&name=' + adname + '&embed=' + embed + '&default=' + useasdefault;
  1004. var callback = handleEditCreate;
  1005. break;
  1006.  
  1007. default:
  1008. var position = document.savead['enum'].value;
  1009. var typeId = document.savead.type.value;
  1010. var params = 'action=savead&partnerid=' + partnerid + '&type=' + typeId + '&name=' + adname + '&embed=' + embed + '&default=' + useasdefault + '&from=editapp&position=' + position + '&app=' + appId;
  1011. var callback = handleNewAd;
  1012. break;
  1013. }
  1014. top.protoAjax('json_ads.php?', params, callback);
  1015. }
  1016.  
  1017. function cancelCreate() {
  1018. var position = grabQueryValue('enum');
  1019. var adType = grabQueryValue('type');
  1020. var theSelect = top.$('selectAd_' + position)
  1021. if (theSelect) {
  1022. var selectedVal = top.adObj[position][adType].selected;
  1023. for (i=0;i<theSelect.options.length;i++) {
  1024. if (theSelect.options[i].value == selectedVal) {
  1025. theSelect.selectedIndex = i;
  1026. break;
  1027. }
  1028. }
  1029. }
  1030. top.GB_hide();
  1031. }
  1032.  
  1033. function checkAdTypeSelect() {
  1034. var vals = document.savead.type_select.options[document.savead.type_select.selectedIndex].value.split('_');
  1035. var defaultVal = vals[1];
  1036. var theDefault = document.savead.useasdefault;
  1037. if (defaultVal == 0 || defaultVal == '0') {
  1038. theDefault.checked = true;
  1039. theDefault.disabled = true;
  1040. } else {
  1041. theDefault.checked = false;
  1042. theDefault.disabled = false;
  1043. }
  1044. }
  1045.  
  1046. function handleEditCreate(oReq) {
  1047. if (!oReq.responseText) return;
  1048. top.initAdRep();
  1049. top.GB_hide();
  1050. }
  1051.  
  1052. function handleNewAd(oReq) {
  1053. if (!oReq.responseText) return;
  1054. top.initAdObj('ads');
  1055. top.GB_hide();
  1056. }
  1057.  
  1058. function checkDefault(mode) {
  1059. switch (mode) {
  1060. case 'edit':
  1061. var defaultVal = document.savead.def.value;
  1062. break;
  1063. case 'create':
  1064. checkAdTypeSelect();
  1065. return;
  1066. break;
  1067. default:
  1068. var defaultVal = grabQueryValue('default');
  1069. break;
  1070. }
  1071. var ad = document.savead.ad.value;
  1072. var theDefault = document.savead.useasdefault;
  1073. if (defaultVal == ad || defaultVal == 0 || defaultVal == '0') {
  1074. theDefault.disabled = true;
  1075. theDefault.checked = true;
  1076. } else {
  1077. theDefault.disabled = false;
  1078. theDefault.checked = false;
  1079. }
  1080. }
  1081.  
  1082. function changeConfigAdSelect(position) {
  1083. if ( !position ) {
  1084. position_array.each( function(position) {
  1085. var radios = $$('input.ad_type' + position);
  1086. radios.each( function(el) {
  1087. var radio = el;
  1088. $('ad_dropdown[' + position + '][' + radio.value + ']').style.display = 'none';
  1089. });
  1090. radios.each( function(el) {
  1091. var radio = el;
  1092. if (radio.checked) {
  1093. $('ad_dropdown[' + position + '][' + radio.value + ']').style.display = 'inline';
  1094. }
  1095. });
  1096. });
  1097. }
  1098. else {
  1099. var radios = $$('input.ad_type' + position);
  1100. radios.each( function(el) {
  1101. var radio = el;
  1102. $('ad_dropdown[' + position + '][' + radio.value + ']').style.display = 'none';
  1103. });
  1104. radios.each( function(el) {
  1105. var radio = el;
  1106. if (radio.checked) {
  1107. $('ad_dropdown[' + position + '][' + radio.value + ']').style.display = 'inline';
  1108. }
  1109. });
  1110. }
  1111. }
  1112.  
  1113. /*
  1114. function doSearch(){
  1115. document.partners_main.submit_action.value = "Search";
  1116. document.partners_main.submit();
  1117. }
  1118.  
  1119. function goToPage(num)
  1120. {
  1121. document.partners_main.page.value = num;
  1122. document.partners_main.submit();
  1123. }
  1124.  
  1125. function numPerPage(num)
  1126. {
  1127. document.partners_main.numOnPageDEF.value = num;
  1128. document.partners_main.submit();
  1129. }
  1130.  
  1131. function setSort(sort,changeOrder)
  1132. {
  1133. document.partners_main.sortBy.value = sort;
  1134. if(changeOrder)
  1135. document.partners_main.sortOrder.value = (document.partners_main.sortOrder.value.toLowerCase() == 'asc') ? 'desc' : 'asc';
  1136. else
  1137. document.partners_main.sortOrder.value = 'asc';
  1138. document.partners_main.submit();
  1139. }
  1140.  
  1141.  
  1142. function checkAgreement(){
  1143. if(document.partners.agreementcheckbox.checked == false &&
  1144. document.partners.statusSelector.options[document.partners.statusSelector.selectedIndex].value != "Pending") {
  1145. alert("The agreement checkbox needs to be checked in order to change a partner's status");
  1146. document.partners.statusSelector.selectedIndex = 0;
  1147. return false;
  1148. }
  1149. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement